set.seed(3)
mydata <- data.frame(id = c(1:5),
score = c(rnorm(5, 0, 1)))
ids <- c(1, 2, 3, 3)
> subset(mydata, id %in% ids)
id score
1 1 -0.9619334
2 2 -0.2925257
3 3 0.2587882
ich eine Situation haben, der Teilmenge, wo Ich mag würde alle Zeilen von mydata
solche der Teilmenge, dass seine id
meine ids
übereinstimmt. Der Haken ist, dass meine ids
die Nummer 3 zweimal wiederholt hat. Aber es scheint, dass subset
nur die eindeutigen Zeilen extrahiert, ich vermute aufgrund der Operator %in%
. Allerdings ist meine gewünschte Ausgabe istR: wie doppelte Reihen von data.frame
> subset(mydata, id %in% ids)
id score
1 1 -0.9619334
2 2 -0.2925257
3 3 0.2587882
4 3 0.2587882
Ich habe auch stattdessen den ==
Operator zu verwenden versucht. Das schien jedoch nicht den gewünschten Effekt zu haben.
Ihr Beispieldatenrahmen enthält keine doppelten Zeilen. Wenn deine 'ids' irgendeine Beziehung zu deinen' mydata' haben, musst du das klarstellen. Sie haben nicht die gleiche Länge, mit welchen Regeln verbinden Sie sie? –
'mydata' hat keine doppelten Zeilen, das ist korrekt. Ich möchte nur ein 'dat.frame' mit den Zeilen erstellen können, die meinen' ids' entsprechen. Wenn also meine 'ids' c (1, 1, 1, 2, 2, 2) sind, dann sollte mein gewünschter 'dat.frame' die erste und die zweite Zeile von' mydata' jeweils dreimal wiederholen. – Adrian
Also haben Ihre 'ids' die gleiche Länge wie' mydata'? Wenn ja, könnten Sie bitte Ihre Frage bearbeiten, um zu reflektieren, dass –