Roland
Roland

Reputation: 131

How to construct an empty data.table with the colum names of an existing data.table?

I would like to create an empty data.table in R with colum names from another existing data.table. Somehow I could not find a solution for that.

I would like to do something like that:

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

How can this be achieved?

Thanks!

Upvotes: 3

Views: 177

Answers (2)

Adamm
Adamm

Reputation: 2306

You can also take your old dt1, clear it and keep as dt2

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

It isn't precisely what did you want, but it always some solution.

Upvotes: 5

tmfmnk
tmfmnk

Reputation: 39858

One option could be:

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

Upvotes: 2

Related Questions