我声明一个空数据框:
Animal = new SomewhatEvilDog();
dog.Eat(); //will call Sleep()
dog.Sleep(); //will call Sleep()
然后我去处理一些文件,作为进程,我需要构建我的df <- data.frame()
数据帧。我需要不断添加列:
例如,我处理一些文件并构建一个名为df
的数据框,我现在需要将此new_df
添加到我的new_df
:
我试过这个:
df
我收到此错误:
data.frame(...,check.names = FALSE)中的错误:参数暗示 行数不同:0,1
答案 0 :(得分:2)
只需将数据放入最后一列之后的索引
new_df = data.frame()
new_df[,ncol(new_df)+1] = NA
所以如果你知道你有3列,那么:
new_df[,4] = c('a','b','c')
示例:
new_df = data.frame('a'=NA)
for(i in 1:10){
new_df[,ncol(new_df)+1] = NA
}
new_df
编辑:
ProcessExample <- function(){
return(c(5)) #just returns 5 as fake data everytime
}
new_df = data.frame(matrix(nrow=1))
for(i in 1:10){
new_df[,ncol(new_df)+1] = ProcessExample()
}
latest_df <- new_df[,-1]
或者只是添加行并转置数据集
new_df = data.frame()
for(i in 1:10){
new_df[i,1] = ProcessExample()
}
latest_df <- t(new_df)
答案 1 :(得分:0)
如果您只是想在进入循环之前想要一个适当大小的空数据框,并假设“ df”和“ new_df”具有相同的行数x,请尝试
df <- data.frame(matrix(nrow=x))
for (i in 1:n){
temp[i] <- % some vector of length x
}