我正在使用R和库quantmod
将数据导入为:
getSymbols("TMUS",from="2020-05-21", src="yahoo",frequency = "daily", format = "%Y-%m-%d")
getSymbols("AAPL",from="2020-05-21", src="yahoo",frequency = "daily", format = "%Y-%m-%d")
然后我想取消列出它们并给他们一个日期列:
TMUS<- as.vector(unlist(TMUS$TMUS.Close)) %>% as_tibble() %>% add_column(date=index(TMUS),.before=1)
AAPL<- as.vector(unlist(AAPL$AAPL.Close)) %>% as_tibble() %>% add_column(date=index(AAPL),.before=1)
最后在内部连接它们以创建一个唯一的数据库:
data <- TMUS %>%
inner_join(.,AAPL, by = "date")
问题是内部联接乘以行数。我认为原因是TMUS
和AAPL
都是列表。我试图使用as.vector(unlist(.))
取消列出它们,但它们仍然是列表。
有没有办法在不乘行的情况下获取数据集内部连接?
请尝试以下操作(如果要调整关闭,请使用广告代替 Cl)。AAPL
,TMUS
和both
将是XTS对象。 如果您只想要两个系列中都有数据的日期,请使用na.omit(both)
。
library(quantmod)
getSymbols(c("AAPL", "TMUS"))
both <- cbind(Cl(AAPL), Cl(TMUS))
如果您有很多股票,请尝试这种方法:
getSymbols(c("AAPL", "TMUS"), env = e <- new.env())
both <- do.call("cbind", eapply(e, Cl))