我正在寻找一种方式来循环中的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
函数或任何其他方法,它们通过具有不同列号的行绑定数据帧。
您可以将所有数据框放在列表中并应用,即
df2