使用R中名称列表中的列初始化数据框

时间:2016-11-09 16:37:22

标签: r dataframe

我有一个列名列表,例如

names = c("a","b")

我想创建一个空数据框,其列名取自names,其中1行所有值均为NA

"a"  "b"
NA    NA

我尝试过这样的事情:

d = data.frame()
for(i in seq(1,length(names))) {
d[,toString(names[i])] = NA
}

似乎无法正常工作

2 个答案:

答案 0 :(得分:1)

我们可以replicate length nameslist NA设置为list,将names的名称设置为data.frame并转换到data.frame(setNames(rep(list(NA), length(names)), names))

read.csv

或另一个选项是read.csv(text=paste(rep(NA, length(names)), collapse=","), header=FALSE,col.names = names)

{{1}}

答案 1 :(得分:1)

这也可以:

df <- as.data.frame(matrix(rep(NA, length(names)), nrow=1))
names(df) <- names