Umgruppierung einer Tabelle

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
wbart
Beiträge: 37
Registriert: Fr Mär 16, 2018 4:08 pm

Umgruppierung einer Tabelle

Beitrag von wbart » Di Aug 28, 2018 4:43 pm

Hallo,

ich habe eine Tabelle mit folgender Form:

Code: Alles auswählen

Sammlung.longform
# A tibble: 2,016 x 6
   Gruppe Geschlecht Proband Gen   Tag   Ausgangslagendifferenzen
 * <chr>  <chr>      <chr>   <chr> <chr> <chr>                   
 1 A      m          1       KI67  d1    -0.159                  
 2 A      m          2       KI67  d1    -0.104                  
 3 A      m          9       KI67  d1    0.156                   
 4 A      m          10      KI67  d1    -0.334                  
 5 A      m          13      KI67  d1    0.071                   
 6 A      m          14      KI67  d1    0.107                   
 7 A      m          20      KI67  d1    0.223                   
 8 A      m          21      KI67  d1    -0.187                  
 9 A      m          22      KI67  d1    -0.0720000000000001     
10 A      w          3       KI67  d1    0.253                   
# ... with 2,006 more rows	
Ich möchte aus der Spalte Proband und der Spalte Ausganslagendifferenzen (AGD) eine neue Tabelle machen. Für jeden Probanden (gekennzeichnet durch ein Nummer z.B. 1,2,9) gibt es mehrere AGD- Werte. Am Ende möchte unter jedem Proband alle AGD aufgelistet haben.

Ich hoffe ich konnte mich verständlich machen.

Hat jemand einen Vorschlag?

ronchen
Beiträge: 8
Registriert: Mo Aug 27, 2018 1:18 pm

Re: Umgruppierung einer Tabelle

Beitrag von ronchen » Mi Aug 29, 2018 11:40 am

Hallo,

wenn du die gleiche Anzahl an Messungen für jeden Probanden hast könntest du für jeden Probanden eine neu Spalte Messungen erstellen mit Messung1, Messung2 usw. und dann mit dem reshape Paket arbeiten siehe Beispiel:

Code: Alles auswählen

x<-data.frame(a=(c(1,2,1,2,1,2,1,2,1,2)),
              b=(c(0.5,0.6,0.8,0.123,0.8,0.5,0.6,0,0.5,0.9)))
x
Output:
   a     b
1  1 0.500
2  2 0.600
3  1 0.800
4  2 0.123
5  1 0.800
6  2 0.500
7  1 0.600
8  2 0.000
9  1 0.500
10 2 0.900

#Spalte anfügen mit den einzelnen Messungen für die Probanden, bei vielen Probanden aber sicherlich umständlich
x$id<-c("Messung1","Messung1","Messung2","Messung2","Messung3","Messung3","Messung4","Messung4","Messung5","Messung5")
   
 library(reshape)
 recast(x,id~variable+a,id.var=c("id","a"))    
 
 Output:   
         id b_1   b_2
1 Messung1 0.5 0.600
2 Messung2 0.8 0.123
3 Messung3 0.8 0.500
4 Messung4 0.6 0.000
5 Messung5 0.5 0.900

VG

wbart
Beiträge: 37
Registriert: Fr Mär 16, 2018 4:08 pm

Re: Umgruppierung einer Tabelle

Beitrag von wbart » Do Aug 30, 2018 10:45 am

Hallo ronchen,

leider habe ich nicht dieselbe Anzahl von Messungen

VG
wbart

bigben
Beiträge: 676
Registriert: Mi Okt 12, 2016 9:09 am

Re: Umgruppierung einer Tabelle

Beitrag von bigben » Do Aug 30, 2018 11:26 am

Hallo wbart,

bitte gib uns ein paar Beispieldaten, anhand derer wir Lösungsvorschläge ausprobieren und vorstellen können. Bis Du darauf dann Antwort bekommst, schau Dir schon mal die Funktionen tapply und aggregate an. Vielleicht würde es auch reichen, das ganze Tibble nach Proband zu sortieren? Dann stünden die AGLs auch alle beieinander.

LG,
Bernhard

bsp <- data.frame(id = c(1,1,1,2,3,3,3,3,4), agl = runif(9))
tapply(bsp$agl, bsp$id, c)
for(i in unique(bsp$id)){ print(i); print(bsp[bsp$id == i,])}
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast