Seite 1 von 1

neue zählende Variable

Verfasst: Mi Jul 05, 2023 2:21 pm
von sims2911
Hi :)

ich habe Daten, in denen ProbandInnen mehrere Durchgänge in verschiedenen Blöcken durchlaufen mussten. Hier im Beispiel zwei Blöcke mit je zwei Durchgängen (macht 4 Durchgänge pro ProbandIn insgesamt). Das sieht dann ungefähr so aus:

Code: Alles auswählen

VP              result     block       
1                   1            1                                               
1                   2            1                                                 
1                   1            2      
1                   1            2                                               
2                   2            1                                                   
2                   1            1                                                
2                   2            2
2                   4            2


Nun hätte ich gerne eine zusätzliche Variable, die die gesamten Durchgänge (der Block ist also egal) pro ProbandIn zählt. Also im Beispiel eine neue Variable die immer von 1-4 Durchzählt (oder eine neue Variable, die die Anzahl der Spalten der ProbandInnen zählt, würde ja aufs gleiche raus kommen).

Es sollte dann praktisch am Ende so aussehen:

Code: Alles auswählen

VP              result     block      trialNr
1                   1            1             1                                 
1                   2            1             2                                    
1                   1            2             3
1                   1            2             4                                  
2                   2            1             1                                      
2                   1            1             2                                   
2                   2            2             3
2                   4            2             4

Code: Alles auswählen

VP              result     block       
1                   1            1                                               
1                   2            1                                                 
1                   1            2      
1                   1            2                                               
2                   2            1                                                   
2                   1            1                                                
2                   2            2
2                   4            2

Wie ich eine neue Variable erstelle ist klar, aber ich schaffe es bisher nur sie mit einer kompletten Zählung über alle ProbandInnen zu füllen. Vielleicht hat ja jemand eine passende Funktion.

Vielen Dank und liebe Grüße!
sims2911

Re: neue zählende Variable

Verfasst: Mi Jul 05, 2023 4:16 pm
von Athomas

Re: neue zählende Variable

Verfasst: Do Jul 06, 2023 9:44 pm
von EDi
Hier mal ein Paar Vorschläge:

Code: Alles auswählen

df <- read.table(textConnection("VP              result     block       
1                   1            1                                               
1                   2            1                                                 
1                   1            2      
1                   1            2                                               
2                   2            1                                                   
2                   1            1                                                
2                   2            2
2                   4            2"), header = TRUE)

# baseR
df$trialNr1 <- ave(df$VP, df$VP, FUN = seq_along)
df$trialNr2 <- unlist(tapply(df$VP, df$VP, FUN = seq_along))


# using dplyr
require(dplyr)
df |>
  group_by(VP) |>
  mutate(trialNr3 = row_number())