Ich versuche zu identifizieren, welche Versuche innerhalb eines langen Formular-Datensatzes wiederholt werden, aber nur innerhalb bestimmter Blöcke pro Teilnehmer. Meine Daten sind so etwas wie folgt strukturiert:So identifizieren Sie doppelte Elemente in einer Teilmenge von Daten
sub block trial item
1 1 1 A
1 1 2 B
1 2 1 A
1 2 2 B
1 3 1 B
1 3 2 C
2 1 1 A
2 1 2 B
2 2 1 A
2 2 2 B
2 3 1 B
2 3 2 C
Was würde ich erstellen möchte, ist eine neue Spalte, die für jeden Teilnehmer gibt an, welche Elemente wiederholen und eine weitere neue Spalte mit einem neuen Prozess-Code, aber nur wenn die Einzelteile
data$dup<-duplicated(data$item)
data$newtrial<-NA
data<-transform(data,
item=make.unique(as.character(item)),
newtrial=ifelse(duplicated(item),trial+100, trial))
: in Blöcken wiederholt 2 und 3. So wäre es etwa so aussehen: mit dem folgenden Code
sub block trial item dup newtrial
1 1 1 A FALSE 1
1 1 2 B FALSE 2
1 2 1 A FALSE 1
1 2 2 B FALSE 2
1 3 1 C FALSE 1
1 3 2 B TRUE 102
2 1 1 A FALSE 1
2 1 2 B FALSE 2
2 2 1 A FALSE 1
2 2 2 B FALSE 2
2 3 1 C FALSE 1
2 3 2 B TRUE 102
ich in der Lage gewesen, Duplikate über den gesamten Datensatz zu identifizieren und 100 zu jedem Versuch Nummer hinzufügen
Was ich nicht herausfinden konnte, ist, wie man die Funktion auf jedes einzelne Subjekt und nur bestimmte Blöcke innerhalb jeder Subjektnummer beschränkt.
Danke!
Ihre gewünschte Ausgabe scheint nicht mit Ihrer Eingabe übereinzustimmen. Warum werden diese als "dup = TRUE" -Duplikate innerhalb ihres "sub" und "block" bezeichnet? – aichao