R: Сортировка списка на основе значений в элементах, в идеале что-то цепочка, которая работает с purrr / tidyverse - PullRequest
0 голосов
/ 28 апреля 2020

Я хотел бы упорядочить элементы в списке на основе критериев, во многом как dplyr ::range делает для data.frames (при сохранении цепочечного синтаксиса).

    ## Something along the lines of:

    list(
        list( foo="baz"  ),
        list( foo="test" ),
        list( foo="bar"  )
    ) %>% arrange( foo )

    ## .. would result in a structure equivalent of:
    list(
        list( foo="bar"  ),
        list( foo="baz"  ),
        list( foo="test" )
    )

Я бы ожидал что-то вроде это существовало, но не было в состоянии найти его

РЕДАКТИРОВАТЬ: я удалил переменную 'l' для ясности

РЕДАКТИРОВАТЬ 2: не могу изменить на tibble вдоль пути, чтобы использовать dplyr ::range, так как элементы могут не поддерживать это, или они могут не иметь совпадающих имен

1 Ответ

1 голос
/ 28 апреля 2020

Вы можете unlist, sort и вернуть его в ту же структуру, используя relist.

relist(sort(unlist(l)), l)

#[[1]]
#[[1]]$foo
#[1] "bar"


#[[2]]
#[[2]]$foo
#[1] "baz"


#[[3]]
#[[3]]$foo
#[1] "test"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...