首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R用映射函数连接多个时间序列

R用映射函数连接多个时间序列
EN

Stack Overflow用户
提问于 2019-01-22 17:29:49
回答 1查看 161关注 0票数 0

我在连接时间序列数据帧和映射函数时遇到了一个问题。我有25个包含加密货币时间序列数据的数据帧。

代码语言:javascript
复制
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" 

每个对象都是一个数据帧,它代表以USD表示的加密货币。每个dataframe有两个clomuns: Date和Close (收盘价)。例如:数据帧"BTC.USD“代表比特币,单位为美元:

代码语言:javascript
复制
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.

现在,我想使用map-function将它们按日期连接到一个数据帧中:

代码语言:javascript
复制
lst1 <- mget(ls(pattern = "USD"))
df <- map(.x = lst1,.f = full_join(by="Date"))

但它不起作用:

代码语言:javascript
复制
Error in UseMethod("full_join") : 
no applicable method for 'full_join' applied to an object of class "character"

有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2019-01-22 20:36:55

mget的结果是一个字符列表,这就是full_join失败并返回错误的原因。

试试这个:

代码语言:javascript
复制
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的列创建一个lst1 tibble with Date列:

代码语言:javascript
复制
DateVec=c("2015-12-31")
map(lst1, function(x) {full_join(tibble(x,Date=DateVec),head(BTC.USD),by="Date")})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54305093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档