Wenn Sie zum Beispiel Spalte 1 als Übereinstimmungskriterium verwenden, rufen Sie replicate(length(v), sum(v))
für den Vektor der Spalte 2, v
, für jeden Satz von Zeilen, die aus zusammenhängenden und übereinstimmenden Zeilen aus dem Datenrahmen A
bestehen (einschließlich Mengen der Größe 1).Wie können wir eine Funktion auf einen Spaltenvektor aus jeder Menge zusammenhängender Zeilen eines Datenrahmens anwenden
A v
a 12
a 43
b 8
a 4
b 12
c 5
c 9
d 21
->
55, 55, 8, 4, 12, 14, 14, 21
Die Operation kann ein Vektor oder eine Liste von Vektoren, die wir zurück auf einen Vektor mit unlist()
zwingen kann.
mit Ich habe bisher data.table vermied es versuchen. An den Orten, an denen ich hingehe, scheint es ein gutes Stück weit zu kommen - vielleicht sollte ich ihm eine Chance geben. Ich werde ein wenig warten, um zu sehen, ob jemand eine non data.table Lösung postet. –
Was benutzen Sie? 'dplyr'? Basis R? Ist "A" ein "Faktor" oder eine "Charakterklasse"? –
Ich benutze 'dplyr' und Base R so weit. Meine Sorge über die data.table ist, dass sie die Datenstruktur so verändert, dass sie nicht mit der Basis-R-Syntax funktioniert. Oder ist das ein Missverständnis? "A" ist Zeichentypdaten. Ich nehme an, es könnte leicht zu Faktoren gezwungen werden (verwenden Sie normalerweise keine Faktoren). –