Mein Problem rührt von der Tatsache her, dass ich die Zeilen, die ich auswählen möchte, bereits anhand der Ebene eines Faktors mithilfe eines anderen Codes identifiziert habe. Im Grunde, was ich habe, ist dies:Zeile für Ebene eines Faktors auswählen
df<-data.frame(ID=c("A","B","C"), pos=c(1,3,2))
df2<-data.frame(ID=c(rep("A",5),rep("B",5),rep("C",5)),obs=c(1:15))
In df, pos an den Index der Zeile entspricht, jedoch innerhalb einer einzigen Ebene von ID, nicht in dem gesamten Datenrahmen df2. Also ich suche nach einer Möglichkeit, die Zeilen für jede ID nach dem richtigen Index (so ihre Zeilennummer innerhalb der Ebene von jedem Faktor df2) auszuwählen.
Das würde mir dann geben:
df3<-data.frame(ID=c("A","B","C"), obs=c(1,8,12))
Funktioniert perfekt, danke! –
Gute Idee. Anstatt einen Zwischendatensatz zu erstellen, konnte man 'df2 $ pos <- sequence (länge (split (df2 $ ID, df2 $ ID)))' 'und dann einfach' merge (df, df2) 'machen argumentieren, dass dieser Weg nicht viel hässlicher ist als dplyr. – Frank
Noch besser (und schneller) mit dieser Bearbeitung. –