2017-10-11 7 views
1

データフレームをループしてマージしようとしましたが、マージしたファイルをRメモリに返しますが、最後の部分を動作させることはできません。ここで データフレームをループしてマージして返します

は私のmerge_data機能である:

list<-c("df1", "df2") 
df1 <- diamonds[1:20,] 
df2 <- diamonds[21:40,] 
data2<-diamonds[41:60,] 

merge_data <- function(data){ 
    temp<-merge(data, data2, by.x = "cut", by.y="cut", all.x = T) 
    temp[is.na(temp)] <-"none" 
    print(temp) 
} 

とマージされたデータを返すことになっている問題の一部フレーム

for(i in list){ 
    temp<-(merge_data(get(i))) 
    return(list[i], temp) 
} 
+2

マージする有効な列名を指定する必要があります。 "name1"と "name2"はデータに存在しません。私はあなたのデータフレームがすべて同じ列名を持っている場合、合併が正しいことを確信していません。代わりに、代わりに 'rbind'をしたいでしょうか? –

+0

これは単なる例です。元のデータセットをマージする必要があります。 – user2904120

+0

data、data2; data2はこの関数で固定されています – user2904120

答えて

2

試してみてください。

for(i in list){ 
    assign(paste0(i, "_merge"), merge_data(get(i))) 
} 

が遊んでする必要がある場合がありますあなたがマージした後に要因が発生するので、それは生成されませんNA s

関連する問題