Ich habe einen DatenrahmenR: match() nur das erste Vorkommen
names2 <- c('AdagioBarber','AdagioBarber', 'Beethovan','Beethovan')
Value <- c(33,55,21,54)
song.data <- data.frame(names2,Value)
ich es arrangieren möchte nach diesem Zeichen Vektor
names <- c('Beethovan','Beethovan','AdagioBarber','AdagioBarber')
I Spiel bin mit(), um dies erreichen
data.frame(song.data[match((names), (song.data$names2)),])
Das Problem ist, dass die Übereinstimmung nur zuerst occurenc zurückgibt es
names2 Value
3 Beethovan 21
3.1 Beethovan 21
1 AdagioBarber 33
1.1 AdagioBarber 33
Es gibt keinen Weg von wissen, welche Sie die beiden ‚Beethovan‘ Aufzeichnungen wollen bestellen . Was versuchst du wirklich? Sie haben also eine Liste mit eindeutigen Werten, nach denen die anderen sortiert werden sollen? Wie brichst du Krawatten? – MrFlick
@MrFlick Ich vermute, sie wahrscheinlich nur die Ebenen der 'names2' Spalte neu anordnen und dann den Datenrahmen sortieren? Aber ich bin verwirrt über die Kommentare zu 'match', da explizit dokumentiert wird, dass nur die ersten Übereinstimmungen zurückgegeben werden. – joran
Vielleicht 'song.data $ names2 <- Faktor (song.data $ names2, levels = c ('Beethovan', 'AdagioBarber')); song.data [order (song.data $ names2),] '? – zx8754