如何将新列添加到R中的空数据框

时间:2016-06-23 13:56:21

标签: r

我声明一个空数据框:

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

2 个答案:

答案 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
}