如何在data.table上应用向量函数

问题描述 投票:0回答:1

对 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

r data.table
1个回答
0
投票

将功能更改为

vsum = \(s){ s[,1,drop=F] + s[,2,drop=F] }

应该给出正确的结果。

使用

s[1]
选择列是
data.frame
快捷方式。使用
data.table
选择行。

© www.soinside.com 2019 - 2024. All rights reserved.