如何解决如何在不乘以行的情况下取消列出 R 和 inner_join 中的对象?
我使用 R 和库 quantmod
将数据导入为:
getSymbols("TMUS",from="2020-05-21",src="yahoo",frequency = "daily",format = "%Y-%m-%d")
getSymbols("AAPL",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(.))
取消列出它们,但它们仍然是列表。
有没有办法在不乘以行的情况下获得数据集内部连接?
解决方法
尝试以下操作(如果您想要调整收盘价,请使用 Ad 代替 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))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。