创建空数据帧并且错误替换有1行,数据发生0

时间:2017-09-25 07:32:01

标签: r dataframe

我需要创建一个空数据框,并设置列以便稍后附加值。

我的代码:

df <- data.frame()

varNames <- c("rho", "lambda", "counts")
colnames(df)<- varNames
df['$rho'] <- NA
df["lambda"] <- NA
df["counts"] <- NA

但是

  

Error in [<-.data.frame(*tmp*, "$rho", value = NA) : replacement has 1 row, data has 0

发生。

1 个答案:

答案 0 :(得分:1)

我们可以使用

df1 <- data.frame(rho = numeric(), lambda = numeric(), counts = numeric()) 
rbind(df1, list(rho = NA, lambda = NA, counts = NA))
#  rho lambda counts
#1  NA     NA     NA

如果我们单独分配,那么list将是有用的

lst <- setNames(vector("list", 3), varNames)
lst[['rho']] <- NA
lst[['lambda']] <- NA
lst
#$rho
#[1] NA

#$lambda
#[1] NA

#$counts
#NULL

由于list元素可以是不同的length,而data.framelist,其长度相等。分配完成后长度相等,然后将其转换为带有data.frame(lst)的data.frame并将其写回文件