2017-10-11 2 views
1

J'essaie de fusionner des trames de données en bouclant puis de renvoyer les fichiers fusionnés dans la mémoire R, mais je n'arrive pas à faire fonctionner la dernière partie.Fusionner des trames de données en boucle puis renvoyer

Voici ma fonction 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) 
} 

et la partie problématique qui est censé renvoyer des données fusionnées trames

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

Vous devez spécifier des noms de colonne valides pour la fusion. "name1" et "name2" n'existent pas dans vos données. Je ne suis pas sûr que la fusion est la bonne chose si vos trames de données ont tous les mêmes noms de colonnes. Peut-être que vous voulez 'rbind' à la place ??? –

+0

c'est juste un exemple, oui, je dois fusionner mes ensembles de données d'origine – user2904120

+0

données, données2; data2 est fixé dans cette fonction – user2904120

Répondre

2

Essayez:

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

pourrions avoir besoin de jouer avec les facteurs après que vous fusionnez afin qu'il ne génère pas NA s