我需要创建一个空数据框,并设置列以便稍后附加值。
我的代码:
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
发生。
答案 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.frame
是list
,其长度相等。分配完成后长度相等,然后将其转换为带有data.frame(lst)
的data.frame并将其写回文件