我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)
这当然不起作用,但是是否有更简单的解决方案不需要额外的变量?
在这种情况下,您知道存在的一列 ( ) 的名称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)
归档时间: |
|
查看次数: |
3090 次 |
最近记录: |