丢弃第一行和最后 n 行

the*_*ega 5 r data.table

data.table在 R 中有一个我想扔掉第一行和最后 n 行的地方。我想先应用一些过滤,然后截断结果。我知道我可以这样做:

example=data.table(row1=seq(1,1000,1),row2=seq(2, 3000,3))
e2=example[row1%%2==0]
e2[100:(nrow(e2)-100)]
Run Code Online (Sandbox Code Playgroud)

是否有可能在一行中执行此操作?我想到了这样的事情:

example[row1%%2==0][100:-100]
Run Code Online (Sandbox Code Playgroud)

这当然不起作用,但是是否有更简单的解决方案不需要额外的变量?

Mat*_*wle 3

在这种情况下,您知道存在的一列 ( ) 的名称row1,因此 usinglength(<any column>)返回未命名临时值中的行数data.table

example=data.table(row1=seq(1,1000,1),row2=seq(2, 3000,3))

e2=example[row1%%2==0]
ans1 = e2[100:(nrow(e2)-100)]

ans2 = example[row1%%2==0][100:(length(row1)-100)]

identical(ans1,ans2)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)