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