2016-08-08 4 views
-2

Я вложен список, например:R - сортировка вложенного списка

x <- c(as.list(c("b", 4)), as.list(c("a", 4))) 

Можно ли заказать его вторым элементом в подсписках?

+1

Это дает список из четырех элементов. Вы имеете в виду 'x <- list (as.list (c (" b ", 4)), as.list (c (" a ", 4)))'? – Psidom

+3

Ваш пример плох, но 'purrr :: sort_by' хорош:' library (purrr); x <- список (список («b», 4), список («a», 3)); x%>% sort_by (2) 'В базе,' x [order (sapply (x, \ '[[\', 2))] ' – alistaire

ответ

0

Я думаю, что вы хотите, это как пример:

x <- c(list(c("b", 4)), list(c("a", 4)), list(c("b", 3))) 

и на заказ по второму элементу в каждом списке вы можете использовать это:

> x[ order (sapply(x, "[[", 2))] 
[[1]] 
[1] "b" "3" 

[[2]] 
[1] "b" "4" 

[[3]] 
[1] "a" "4" 

saplly(... , "[[" , <n>) парадигма часто полезно для извлечения из результатов strsplit:

> z <- strsplit(c("test of sentence reading", "another test", "something esle") , split=" ") 
> sapply(z, "[[", 2) 
[1] "of" "test" "esle" 
Смежные вопросы