对 2 个向量求和的函数
vsum = \(s){ s[1] + s[2] };
适用于 data.frame
> vsum(expand.grid(1:2,2:3))
Var1
1 3
2 4
3 4
4 5
但是如何为 data.table 获得相同的结果 这是不正确的结果。
> library(data.table)
> vsum(CJ(1:2,2:3))
V1 V2
<int> <int>
1: 2 5
附加说明。
我不想要带有2个变量的函数,而是单个变量
s
将功能更改为
vsum = \(s){ s[,1,drop=F] + s[,2,drop=F] }
应该给出正确的结果。
使用
s[1]
选择列是 data.frame
快捷方式。使用 data.table
选择行。