0
私はループ内のデータフレームをrbind.fill
に見ています。私の望む結果は次のようになります: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]))
}
あなたは追加の行が含まれていないデータフレーム(df1
、df2
とdf3
)を見ることができるように:ここでは一例です。これを修正するには?古いDFSに行を追加して後で書き込むことができます。
重要な注記:異なる列番号の行でデータフレームをバインドする関数またはその他の方法である必要があります。
、リスト内のすべてのデータフレームを入れて適用することができます:: rbind.fill(X、data.frame(VAR1 = xで[1] + 10)) 'イモ。 – h3rm4n
間違っていると私を訂正してください - このコードは自分のdfsに行を追加するのではなく、新しいdfsだけを表示します。私は永続的に既存のデータフレームに行を追加する必要があります(例えば、私はcsvとしてそれらを書くことができます)。私はこの情報を私の質問に更新します。 – Alexandros
ケインはパトリストを「パトリスト」に割り当てる。 'l1 < - lapply(l1、function(i){.....})' – Sotos