操作数据表的向量元素

时间:2017-05-19 20:45:21

标签: r data.table

我正在尝试对数据表的元素执行向量运算。任何帮助,将不胜感激。这是一个玩具示例:

> library(data.table)
> dt <- data.table(V1 = list(c(1,2),c(1,2,3)), V2 = list(c(1,3),c(2,2,1)))
> dt
      V1    V2
1:   1,2   1,3
2: 1,2,3 2,2,1

我可以通过循环实现我想要的结果:

> for (i in 1:nrow(dt)) {
+   dt$diff[i] <- sum(abs(dt$V1[i][[1]]-dt$V2[i][[1]]))
+ }
> dt
      V1    V2 diff
1:   1,2   1,3    1
2: 1,2,3 2,2,1    3

这显然是丑陋而缓慢的。我无法弄清楚如何在data.table中执行此操作。我最好的尝试是:

> dt[,diff := sum(abs(V1[[1]]-V2[[1]]))]
> dt
      V1    V2 diff
1:   1,2   1,3    1
2: 1,2,3 2,2,1    1

0 个答案:

没有答案