R 如何使用现有data.table的列名称构造空data.table?

R 如何使用现有data.table的列名称构造空data.table?,r,data.table,R,Data.table,我想在R中创建一个空的data.table,其中列名称来自另一个现有的data.table。 不知何故,我找不到解决办法 我想这样做: require(data.table) dt1 <- data.table(fn = c("A","B","C"), x = c(1,2,3), y = c(2,3,4), a = 1, b = 2, c = 3) dt2 <- data.table(names=colnames(dt1)) # Gives 6 rows instead of 6

我想在R中创建一个空的data.table,其中列名称来自另一个现有的data.table。 不知何故,我找不到解决办法

我想这样做:

require(data.table)

dt1 <- data.table(fn = c("A","B","C"), x = c(1,2,3), y = c(2,3,4), a = 1, b = 2, c = 3)
dt2 <- data.table(names=colnames(dt1)) # Gives 6 rows instead of 6 cols
require(data.table)
dt1一个选项可以是:

dt2 <- setnames(data.table(matrix(nrow = 0, ncol = length(dt1))), names(dt1))

Empty data.table (0 rows and 6 cols): fn,x,y,a,b,c

dt2您也可以使用旧的
dt1
,将其清除并保留为
dt2

dt2 <- dt1[0,]
dt2
Empty data.table (0 rows and 6 cols): fn,x,y,a,b,c

dt2@Adamm可能作为答案发布?此答案还从原始
数据中获取正确的列数据类型。表
,因此我更喜欢此答案,因为
dt1
数据。表
也不是必需的。i、 e.
dt1[0]
也可以工作