使用rbind.fill在循环中添加新行

问题描述 投票:0回答:1

我正在寻找一种方式来循环中的rbind.fill数据帧。我想要的结果如下:

library(plyr)
set.seed(101)
df1=data.frame("var1"=runif(18,min=0,max=1),
              "index2"=c(rep(c("A","B","C"),6)),
              "index1"=c(rep(1,9),rep(2,9)))
x=df1[,1]+10
new_variable=data.frame(var1=x)
rbind.fill(df1,new_variable)

我需要创建一个循环,自动将字符串作为新行添加到多个数据帧。这是一个例子:

library(plyr)
#to be sure everyone has same output
set.seed(101)
#example dfs
df1=data.frame("var1"=runif(18,min=0,max=1),
              "index2"=c(rep(c("A","B","C"),6)),
              "index1"=c(rep(1,9),rep(2,9)))


df2=data.frame("var1"=runif(18,min=0,max=1),
               "index2"=c(rep(c("A","B","C"),6)),
               "index1"=c(rep(1,9),rep(2,9)))

df3=data.frame("var1"=runif(18,min=0,max=1),
               "index2"=c(rep(c("A","B","C"),6)),
               "index1"=c(rep(1,9),rep(2,9)))

#df names
df.names=c("df1","df2","df3")

#loop
for (i in 1:length(df.names)){
  x=get(df.names[i])[,1]+10
  new_variable=data.frame(var1=x)
  #my idea of what binding code should look like
  rbind.fill(get(df.names[i]),new_variable)
  #to print results
  print(get(df.names[i]))
  }

如您所见,数据框(qazxsw poi,qazxsw poi和qazxsw poi)不包含其他行。如何解决这个问题?请记住,我想永久地向旧dfs添加行,以便稍后我可以编写它们。

重要提示:它必须是df1函数或任何其他方法,它们通过具有不同列号的行绑定数据帧。

r
1个回答
2
投票

您可以将所有数据框放在列表中并应用,即

df2
© www.soinside.com 2019 - 2024. All rights reserved.