Angenommen, ich habe einen Vektor wieFunktion zu gruppieren Elemente eines Vektors/Liste
vec <- 0:10
und eine Funktion wie
f <- function (x) x %% 3
Gibt es eine eingebaute Funktion in R, die diesen Vektor brechen in Gruppen basierend auf dem Rückgabewert von f
, wenn auf jedes Element angewendet? Wenn nicht, was ist der einfachste Weg dies mit Hilfe von eingebauten zu implementieren?
Der erwartete Rückgabewert ist
list(c(0,3,6,9), c(1,4,7,10), c(2,5,8))
Bei einem komplizierteren Beispiel kann ein Vektor von Strings nehmen und solche, die Gruppe zusammen anagrams sind (das heißt sie aus dem gleichen Buchstaben bestehen). In diesem Fall würde f
einen String nehmen, ihn in Kleinbuchstaben schreiben und ihn sortieren. Auf Unix-Systemen gibt es eine Wortliste zur Verfügung:
words <- scan('/usr/share/dict/words', what=character, sep='\n')
ich nicht darauf bestehen, diese speziellen Datenstrukturen (Vektor, Liste) über die Verwendung, wenn sie für diese Aufgabe in R.
Es gibt 'split':' split (00.10, (00.10) %% 3) ' –
würden Sie müssen' vec <- 00.10 'und dann' split (vec, f (vec)) '. Um Strings aufzubrechen, wie du es erwähnst, gibt es 'strsplit'. Wie 'strsplit (c (" das ist ein String "," und ein anderer "), split =" ")'. – lmo
Danke. Werden Sie eine Antwort posten oder ist diese Frage zu einfach gehalten und ich lösche sie lieber? – Szabolcs