0
votes

Fusionner Excellez des fiches / dataframes dans un Dataframe commun en gardant des échantillons comme des colonnes

J'ai un document Excel avec différentes feuilles (correspondant à différents échantillons). Sur chaque feuille / échantillon. J'ai des valeurs pour différentes catégories.

  • Comment puis-je fusionner les feuilles / échantillons dans une feuille commune afin que les variables soient fusionnées?

    La sortie souhaitée serait une table avec des échantillons sous forme de colonnes et de variables avec des niveaux variables en tant que lignes , les valeurs se situeraient sur les colonnes d'échantillons tels que: < p> Voici un exemple de reproductible EASY REPRODUCIBLE EN R de deux échantillons / DataFrames (Feuilles Excel) Où je voudrais avoir des variables en tant que lignes et échantillons en tant que colonnes: xxx

    La sortie souhaitée serait la suivante: xxx


0 commentaires

3 Réponses :


1
votes
sample1$name <- rep("S1",nrow(sample1))
sample2$name <- rep("S2",nrow(sample2))
outputs <- rbind(sample1,sample2)
outputs_reshape <- 
dcast(Variable+Level1+Level2+Level3~name,data=outputs,fill=0)
outputs_reshape

1 commentaires

Je reçois ceci: erreur dans data.table :: dcast.data.table (as.data.table (sorties), données = sorties,: "Données" doit être une donnée.



1
votes

Utilisation de data.Table.Table : xxx

à l'aide de tiard : xxx


2 commentaires

Pour mes données n = 17, on dirait que cela ne fonctionne pas pour les suffixes. J'ai utilisé A3 <- Full_Join (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17, BY = C ("variable ", Pâte0 (" niveau ", 1: 3)), suffixe = C (" S2 "," S2 "," S4 "," S5 "," S7 "," S7 "," S7 "," S7 "," S7 ", "S9", "S10", "S11", "S13", "S14", "S15", "S16", "S17")) ET obtenu: Erreur: ` suffixe` doit être un vecteur de caractère de longueur 2, pas un vecteur de caractère de longueur 17


Et avec le tableau de données, j'obtiens l'erreur suivante: La condition a la longueur> 1 et seul le premier élément sera utilisé à merge.data.table (S1, S2, S3, S4, S5, S7, S7, S7, S7, S7, S7, S7, S7, S7, S7, S7, S7, S7, S7, S7, S7 , S9, S10, S11,: argument 'Trier' devrait être logique true / faux



1
votes

Utilisation d'une approche data.Table code>, vous pouvez procéder comme suit:

library(data.table)

sample1$sample <- "sample1"
sample2$sample <- "sample2"

dcast(rbind(setDT(sample1), sample2), ... ~ sample, value.var = "value", fill = 0)

#    Variable Level1 Level2  Level3 sample1 sample2
# 1:        A  China   East    Asia    0.38    0.23
# 2:        B  India  South    Asia    0.22    0.20
# 3:        C     UK   West  Europe    0.18    0.00
# 4:        D  Italy  South  Europe    0.12    0.12
# 5:        E  Egypt  North  Africa    0.10    0.11
# 6:        F Mexico Centre America    0.00    0.15


1 commentaires

Pour mon n = 17, j'ai utilisé votre code et j'ai travaillé parfait, merci! AAA <- Dcast (RBind (SEDTDT (S1), S2, S3, S4, S5, S6, S7, S8, S9, S12, S11, S12, S13, S14, S15, S16, S17) ,. . ~ échantillon, valeur.var = "valeur", remplissage = 0)