Скажем, у меня есть список в R:Переупорядочить список R по нетрадиционно упорядоченному вектору?
MyList <- list(A = rnorm(5), B = seq(10), C = letters)
Теперь, скажем, у меня есть вектор, соответствующие имена из MyList
, но имеет их в другой последовательности:
pattern <- c("B", "A", "C")
Как я могу сортировать MyList
в соответствии с заказом в pattern
? Результат должен выглядеть так, но с исходными именами, которые все еще назначены.
NewList <- list(MyList[["B"]], MyList[["A"]], MyList[["C"]])
Это кажется простым, если pattern
имеет естественный порядок (например, по возрастанию или убыванию). Но что, если этого не произойдет, поэтому я не могу использовать sort
или order
?
Моего идеальное решение будет использовать только базовый R.
Вы ищете для этого 'sapply (шаблон, функция (х) MyList [[х]])'. –
Просто используйте подмножество имен: 'MyList [pattern]' или 'MyList.reordered <- MyList [pattern]' для назначения. – lmo
@imo Thats way better. –