Data.Frame vereinfachen
Verfasst: Mi Aug 14, 2019 7:10 pm
Hallo,
ich habe ein Problem bei dem ich nicht weiter komme.
ich habe einen Dataframe(df) der wie folgt aussieht:
Es handelt sich hierbei um Messdaten (Mol%) für eine jeweilige Stoffgruppe (12:0, 14:0, 16:0 ... etc) an einem Probeort (S1_..., S2_..., etc).
Ich benötige für eine Hauptkomponentenanalyse einen Dataframe mit der Form
Leider bekomme ich es nicht hin den Dataframe umzuformen, ich habe schon versucht mit
eine Liste zu erstellen die nach dem Sample_Name ordnet. Wie ich aber dabei weiter machen soll weiß ich nicht, ich habe noch nicht viel mit Listen gearbeitet. Mit einer Schleife die die verschiedenen Objekte in der Liste anspricht und als eigenen Dataframe abspeichert und dann einem bestehenden hinzufügt habe ich herumgespielt, bin aber leider zu keinem Ergebnis gekommen.
Außerdem habe ich die unsaubere Methode versucht einen neuen Dataframe zu erstellen und jeder Spalte und Zeile aus der alten etwas zuzuweisen:
Das endet aber leider im Chaos, da ich viel zu viele Messdaten habe.
Ich hoffe jemand kann mir einen Tipp geben wie ich das Problem lösen kann. Ich bin über alles Dankbar und mein R-Wissen aus dem bisherigen Studium ist ausbaufähig.
Danke und schönen Abend,
ich habe ein Problem bei dem ich nicht weiter komme.
ich habe einen Dataframe(df) der wie folgt aussieht:
Code: Alles auswählen
MolPerc Name Sample_Name
0,723117947750453 12:0 S1_and_pk_veg_1
0,046089710969517 12:0 S3_and_pk_veg_3
4,664022769640830 12:0 S19_lux_pk_veg_1
0,792319980905775 12:0 S20_lux_pk_veg_2
0,100690400314121 12:0 S21_lux_pk_veg_3
1,95202073928723 12:0 S22_lux_con_1
1,20986882371796 12:0 S26_eme_pk_veg_1
0,015568792253626 12:0 S39_hol_pk_gra_3
5,34343671539878 14:0 S2_and_pk_veg_2
1,51185521037698 14:0 S3_and_pk_veg_3
1,35878506814433 14:0 S5_and_pk_grz_2
1,76210006075600 14:0 S13_and_pk_gra_2
1,82794586686593 14:0 S16_and_con_2
12,0743415293854 14:0 S19_lux_pk_veg_1
14,7363511213337 14:0 S20_lux_pk_veg_2
0,83263403772498 14:0 S21_lux_pk_veg_3
4,73522889279343 14:0 S22_lux_con_1
4,72836058510026 14:0 S23_lux_con_2
7,46591217346962 14:0 S25_lux_con_3
1,01126841130609 14:0 S28_eme_pk_veg_3
0,31756894204574 14:0 S29_eme_con_1
8,18829604882864 14:0 S31_eme_con_2
11,6309532486909 14:0 S32_eme_con_3
4,26023160565549 14:0 S33_hol_pk_veg_1
3,86034759755138 14:0 S34_hol_pk_veg_2
4,54779361187967 14:0 S35_hol_pk_veg_3
26,8266683027117 16:0 S1_and_pk_veg_1
14,6555021267382 16:0 S2_and_pk_veg_2
15,8949628089649 16:0 S3_and_pk_veg_3
17,5404923990519 16:0 S4_and_pk_grz_1
17,6990270056518 16:0 S5_and_pk_grz_2 usw.
Ich benötige für eine Hauptkomponentenanalyse einen Dataframe mit der Form
Code: Alles auswählen
12:0 14:0 16:0 etc…
S1_and_pk_veg_1 0,723117947750453 0 26,8266683027117
S2_and_pk_veg_2 0 5,34343671539878 14,6555021267382
S3_and_pk_veg_3 0,046089710969517 1,51185521037698 15,8949628089649
etc…
Code: Alles auswählen
listpca <- split(df, df$Sample_Name)
Außerdem habe ich die unsaubere Methode versucht einen neuen Dataframe zu erstellen und jeder Spalte und Zeile aus der alten etwas zuzuweisen:
Code: Alles auswählen
dfpca <- data.frame(
Name = c("S1_and_pk_veg_1", ...
MolPerc120 = c(df$MolPerc[which(df$Sample_Name == "S1_and_pk_veg_1" & df$Name == "12:0")], ... usw
Ich hoffe jemand kann mir einen Tipp geben wie ich das Problem lösen kann. Ich bin über alles Dankbar und mein R-Wissen aus dem bisherigen Studium ist ausbaufähig.
Danke und schönen Abend,