我有一些' xts'对象,差不多600,我想将它们合并到一个< xts'对象。
这些对象的名称类似于mfi0,mfi1,mfi2,.... 我可以为一些对象编写merge命令,例如
a<-merge(mfi0,mfi1,mfi2)
但我的问题是我无法为600个对象写loop
或lapply
,包含字符串&#34; mfi&#34;还有一个数字,我试过paste
但是无法写。
答案 0 :(得分:2)
这些物品来自哪里?最好在生成过程中使用列表而不是600个单独的变量。因此,您应该mfi0
,mfi1
,...,mfi600
而不是mfi[1]
,mfi[2]
,...,mfi[600]
。
拥有所有数据有助于处理它。现在,使用自己的merge 命令可以更加简化合并过程:
merged_mfi <- do.call(merge, mfi)
或者使用仅处理两个对象的合并命令(即data.frames的R合并):
merged_mfi <- Reduce(merge, mfi[2:length(mfi)], mfi[1])
答案 1 :(得分:0)
将所有xts对象放在列表list.xts
中。在您的情况下,它将是600个元素的列表,每个元素都是一个xts对象。然后,您可以简单地使用
a = Reduce(f=merge.xts, list.xts)