段I有一個data.table
和我需要提取相等的長度段開始在不同的行的位置。什麼是最簡單的方法來做到這一點?例如:提取的data.table
x <- data.table(a=sample(1:1000,100), b=sample(1:1000,100))
r <- c(1,2,10,20,44)
idx <- lapply(r, function(i) {j <-which(x$a == i); if (length(j)>0) {return(j)} })
y <- lapply(idx, function(i) {if (!is.null(i)) x[i:(i+5)]})
do.call(rbind, y)
a b
1: 44 63
2: 96 730
3: 901 617
4: 446 370
5: 195 341
6: 298 411
這肯定不是做的事情,所以我希望有一個更好的辦法的data.table
方式?
編輯:下面的每條評論,我編輯這只是因此很明顯,a
中的值不一定是連續的,也不對應於行號。
這就是我一直在尋找的!謝謝! – Alex