我需要创建一个没有行的data.frame,但是指定的列名和列类型将在稍后填充。因为我想拥有1000列,所以逐个定义列(如下所示)不是一个选项。
data.frame(a1 = character(), a2 = character(), ..., a1000 = character())
我在考虑可能会使用paste
函数来创建一系列名称,但以下内容不起作用。
data.frame(paste('a', 1:1000, sep = '') = character())
任何想法如何实现?
答案 0 :(得分:2)
虽然它与@Nick Criswell非常相似,但您也可以这样做:
df <- data.frame(replicate(1000,sample(0:1,0,rep=TRUE)))
> dim(df)
[1] 0 1000
> class(df)
[1] "data.frame"
答案 1 :(得分:1)
可能有一种方法可以在一行中执行此操作,但一个选项是首先创建一个空矩阵,将其转换为数据框,然后更改名称。
df <- data.frame(matrix("NA", nrow = 0, ncol = 1000), stringsAsFactors = FALSE)
names(df) <- paste("a", 1:1000, sep = "")
> dim(df)
[1] 0 1000
> class(df)
[1] "data.frame"