我想知道,是否有可能针对某些特定任务将数据表进行有效的交叉联接。

假设我有一个 vector 化版本,可以比较 vector 中的所有数字再加上其他所有数字。如果我没记错的话,那么它在R中的 vector 化版本将是

somevector <- rnorm(10, 5)
sapply(somevector, function(x) {
  return(x-somevector)
})

是否可以使用data.table生成相同的矩阵?会有效吗?

谢谢!

最佳答案

expand.grid执行SQL中的交叉连接。您可以使用它轻松地减去两个 vector 。

x<-1:7
somevector <- rnorm(10, 5)
df<-(expand.grid(x,somevector))
df[,1]-df[,2]

08-25 10:50