Mam ramkę danych, która odnosi numery butelek do ich objętości (key
w poniższym przykładzie). Chcę napisać funkcję, która zajmie się dowolną listą numerów butelek (samp
) i zwróci listę pojemności butelek , zachowując kolejność numerów butelek w samp
.Jak scalić i zachować kolejność rzędów jednego wejścia?
Poniższa funkcja poprawnie dopasowuje numery butelek i objętości, ale sortuje dane wyjściowe według rosnącego numeru butelki.
Jak zachować kolejność samp
z merge
? Ustawienie sort=FALSE
powoduje "nieokreśloną kolejność".
Przykład
samp <- c(9, 1, 4, 1)
num <- 1:10
vol <- sample(50:100, 10)
key <- data.frame(num, vol)
matchFun <- function(samp, key)
{
out <- merge(as.data.frame(samp), key, by.x="samp", by.y="num")
return(out$vol)
}
Poważnie? Jest w instrukcji. Przeczytaj '? Merge'; 'sort = PRAWDA' to domyślny ... –
który nie wydaje się utrzymywać pierwotnej kolejności' samp' z jakiegoś powodu ... – KennyPeanuts
Cóż, bzdura, przepraszam. 'sort = FALSE' zwraca wiersze w" nieokreślonej kolejności ". Wygląda na to, że potrzebuję RTFM. ;-) Przywołajcie "świetny komentarz". Lubię dobrze wykonaną wronę. –