To 创建一个空的data.table
使用(假设所有列都是数字):
library(data.table)
data <- data.table(va=numeric(), vb=numeric(), vc=numeric())
data
结果是:
> data
Empty data.table (0 rows) of 3 cols: va,vb,vc
To 对所有列进行自连接使用(即使结果是相同的;-):
data2 <- data.table(va=c(-1,0,1), vb=c(-1,0,1), vc=c(-1,0,1))
data2
merge(data2, data2,by=names(data2))
您必须指定的原因by
参数是记录的语义merge
:
by:
要合并的 x 和 y 中共享列名称的向量。这是默认的
两个表之间的共享键列。如果 y 没有密钥
列,默认为 x 的键。
由于您没有设置任何键,因此用于合并数据表的“连接”列不清楚。
如果省略,则不存在隐式“使用所有列”语义by
参数(如上所述,采用共享密钥列)。
To 追加所有行data.table 到您使用的另一个数据表rbind
(“行绑定”)而不是merge
:
data3 <- rbind(data2, data2)
data3
结果是:
> data3
va vb vc
1: -1 -1 -1
2: 0 0 0
3: 1 1 1
4: -1 -1 -1
5: 0 0 0
6: 1 1 1