我有一个大数据表,我想根据我拥有的索引列表(DT [index_vector]来减少它。 有没有办法不仅将index_vector的行子集化,而且还对索引周围的+-5行进行子集化?
我正在尝试确定是否真的需要创建一个循环,或者有一种更有效的方式来创建子集。
答案 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)))]