r - R使用地图功能加入多个时间序列
问题描述
我在使用地图功能加入时间序列数据帧时遇到问题。我有 25 个带有加密货币时间序列数据的数据框。
ls(pattern="USD")
[1] "ADA.USD" "BCH.USD" "BNB.USD" "BTC.USD" "BTG.USD" "DASH.USD" "DOGE.USD" "EOS.USD" "ETC.USD" "ETH.USD" "IOT.USD"
[12] "LINK.USD" "LTC.USD" "NEO.USD" "OMG.USD" "QTUM.USD" "TRX.USD" "USDT.USD" "WAVES.USD" "XEM.USD" "XLM.USD" "XMR.USD"
[23] "XRP.USD" "ZEC.USD" "ZRX.USD"
每个对象都是一个数据框,代表以美元表示的加密货币。每个数据框都有 2 个 clomun:日期和收盘价(收盘价)。例如:数据框“BTC.USD”代表美元中的比特币:
head(BTC.USD)
# A tibble: 6 x 2
Date Close
1 2015-12-31 430.
2 2016-01-01 434.
3 2016-01-02 434.
4 2016-01-03 431.
5 2016-01-04 433.
现在我想使用地图功能按日期将它们全部加入一个数据帧:
lst1 <- mget(ls(pattern = "USD"))
df <- map(.x = lst1,.f = full_join(by="Date"))
但 ist 不起作用:
Error in UseMethod("full_join") :
no applicable method for 'full_join' applied to an object of class "character"
有人可以帮助我吗?
解决方案
mget 的结果是一个字符列表,这就是为什么full_join
失败并出现错误的原因。
尝试这个:
map(lst1, function(x) {full_join(tibble(x),head(BTC.USD),by="Date")}) # Full join might fail becuase lst1 has no column called Date.
此外,在 lst1(您拥有的)中的 mget 结果中,没有名为Date
Creating a lst1 tibble with Date Column 的列:
DateVec=c("2015-12-31")
map(lst1, function(x) {full_join(tibble(x,Date=DateVec),head(BTC.USD),by="Date")})
推荐阅读
- visual-studio-2019 - 查找文本在 Visual Studio 2019 中不再起作用
- sql - 如何在 postgresql 中为 regexp_matches 创建索引?
- php - 如何在 WooCommerce 中更改 sold_individually 产品属性
- c# - 如何从另一个线程在 PictureBox 上绘图?
- ios - 无法在 iOS 上从 Unity 运行 Vuforia 应用程序。代码签名无效
- xml - PLSQL解析GML
- android - 如何使用警报管理器将数据从片段传递到广播接收器
- javascript - 如何在不阻塞的情况下从浏览器重定向到移动应用程序?
- c++ - 铸造Qvector
到 QString - ios - 如何在 swift 4 中在没有库的情况下在 api 中发送授权类型承载令牌?