Abtastdaten erstellen:eine Spalte von Listen in eine Zeichenkette in einem R-Datenrahmen Nötigung
id <- c(12, 32, 42, 42, 52, 52, 67, 67)
relationship_id <- c(15,1,59,1,61,6,59,1)
sample.data <- data.frame(id,relationship_id)
für jede ID, die mehr als einmal, verketten die relationship_id erscheint:
combo <- aggregate(relationship_id ~ id, data = sample.data, paste, sep=",")
table(combo$relationship_id)
Error in table(combo$relationship_id) :
all arguments must have the same length
I heraus Was hat diesen Fehler verursacht:
class(combo$relationship_id)
[1] "list"
Aber wenn ich versuche und den Vektor der Liste zu einem Zeichenvektor zwingen:
combo["relationship_id"] <- lapply(combo["relationship_id"], as.character)
> head(combo)
id relationship_id
1 12 15
2 32 1
3 42 c("59", "1")
4 52 c("61", "6")
5 67 c("59", "1")
Es die Verkettung Syntax enthält ... Ich verstehe, dass ich die Ausgabe analysieren kann, so dass es verwendet werden kann, aber warum ist das passiert? Gibt es eine einfachere Möglichkeit, die Ausgabe zu bereinigen?
Ändern Sie 'sep' in' collapse' und Sie sollten in der Lage sein zu tun, was Sie erwartet haben. – A5C1D2H2I1M1N2O1R2T1
Gute Arbeit mit einer reproduzierbaren Frage als Ihre erste Frage zu SO. (+1) – A5C1D2H2I1M1N2O1R2T1