使用R来设置符合条件的xts对象的列表

时间:2016-05-09 03:40:27

标签: r list subset xts

我有一个相当大的List,其中包含xts对象,如下所示:

tail(LIST[[1]])

          AMFD..Open AMFD..High AMFD..Low AMFD..Close AMFD..Volume AMFD..spcseccd
1984-12-21         NA      3.625     3.625       3.625         6400            978
1984-12-24         NA      3.500     3.500       3.500         4000            978
1984-12-26         NA      3.625     3.625       3.625         2200            978
1984-12-27         NA      3.500     3.500       3.500         6400            978
1984-12-28         NA      3.750     3.750       3.750         8700            978
1984-12-31         NA      3.750     3.750       3.750         4200            978

tail(LIST[[2]])

           ANTQ.Open ANTQ.High ANTQ.Low ANTQ.Close ANTQ.Volume ANTQ.spcseccd
1984-12-21        NA      3.25    2.750      3.000         800           976
1984-12-24        NA      3.25    2.875      3.063           0           976
1984-12-26        NA      3.25    2.750      3.000           0           976
1984-12-27        NA      3.25    2.750      3.000         100           976
1984-12-28        NA      3.25    2.750      3.000         700           976
1984-12-31        NA      3.25    2.750      3.000        1800           976

我想根据第6列的最后一个数字对该列表进行子集化: 例如:LIST[last(LIST[[x]][,6]) == 978]

我认为这样的事情可行,但它也会返回一些不符合标准的Xts:

SS <- sapply(as.list(1:10),function(x) {
  LIST[which(last(LIST[[x]][,6]) == 978)]
})

1 个答案:

答案 0 :(得分:0)

经过多次试验,我找到的解决方案如下:

LIST[sapply(LIST,"[[",6) %in% 978]

这将返回具有匹配条件的所有xts对象(978)