Je suis nouveau ici mais j'ai besoin d'aide. J'ai une liste de cadres de données, et pour chaque élément de ma liste (c'est-à-dire data.frame), je veux coller rapidement une colonne d'un ensemble de données vers plusieurs autres colonnes du même ensemble de données, séparées uniquement par un point (".").
Donc si j'ai un ensemble de données dans une liste de cadres de données :
list1[[1]]
A B C
2 1 5
4 2 2
Je veux alors le résultat suivant :
list1[[1]]
A B C
2.5 1.5 5
4.2 2.2 2
Où C est collé à A et B individuellement. Je veux ensuite que cette opération ait lieu pour chaque cadre de données de ma liste.
J'ai essayé ce qui suit :
pasteX<-function(df) {for (i in 1:dim(df)[2]-1) {
df[,i]<-as.numeric(sprintf("%s.%s", df[,i], df$C))
}
return(df)}
list2<-lapply(list1, pasteX)
Mais cette approche est très lente pour les matrices et les listes de grande taille. Avez-vous des recommandations pour rendre ce code plus rapide ? Merci !
1 votes
Bienvenue. Idéalement, fournissez vos données d'une manière plus facile à lire : stackoverflow.com/questions/5963269/
2 votes
Ah, merci d'avoir partagé cela... Je ferai plus attention à la façon dont je présente mes données et mes questions à partir de maintenant !