我有一个列表列表,并且具有相同数量的对象,如下所示:
my_lists <- list(
second = c('foo','bar','potato'),
first = c(1,4,2),
third = data_frame(first_name = c(1,2,3),middle_name = c(34,5,3),
last_name = c(3,9,1))
)
my_lists
$second
[1] "foo" "bar" "potato"
$first
[1] 1 4 2
$third
# A tibble: 3 x 3
first_name middle_name last_name
<dbl> <dbl> <dbl>
1 1 34 3
2 2 5 9
3 3 3 1
我想重新排序每个列表中的项目以显示如下内容:
$name1
[1] "bar" "foo" "potato"
$name2
[1] 4 1 2
$name3
# A tibble: 3 x 3
middle_name first_name last_name
<dbl> <dbl> <dbl>
1 34 1 3
2 5 2 9
3 3 3 1
我尝试使用索引编写不同的新订单,但我只是设法杀了我的列表。
感谢。
答案 0 :(得分:2)
我们可以做到
lapply(my_lists, function(x) if(is.vector(x)) sort(x) else
x %>%
select(sort(names(.), decreasing = TRUE)))
如果是自定义订单
lapply(my_lists, `[`, c(3, 2, 1))