我可以对索引列表和索引周围的行进行子集设置吗?

时间:2019-06-29 20:58:43

标签: r data.table

我有一个大数据表,我想根据我拥有的索引列表(DT [index_vector]来减少它。 有没有办法不仅将index_vector的行子集化,而且还对索引周围的+-5行进行子集化?

我正在尝试确定是否真的需要创建一个循环,或者有一种更有效的方式来创建子集。

1 个答案:

答案 0 :(得分:2)

一个选项是

DT[sort(unique(sapply(index_vector, function(i) pmax(1, (i-5)):pmin((i+5), .N)))]

另一个选项是Map

DT[unique(sort(pmin(pmax(1, unlist(Map(`:`, index_vector - 5, 
        index_vector + 5))), .N)))]