在列表中使用dplyr应用和排序?

时间:2018-02-23 15:06:18

标签: r list dplyr tidyr

有人可以解释我是如何使用申请系列中的某些内容在列表中执行的...

list1[[1]][1:31,] %>% arrange(vuln)

基本上我需要做的就是选择行1:31,然后使用vuln排列数据集。以上实现了这一点,但是在列表中的第一个数据帧上实现了这一点。我猜的是类似的东西:

apply(list1,2,function(x)list[x][1:31] %>% arrange(vuln))

但上述似乎并不奏效。也只是为了比较,我能看到一个可以达到相同的循环吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这将是tidyverse方式:

library(dplyr)
library(purrr)
your_list <- list(head(iris),tail(iris))
your_list %>% modify(
  . %>% slice(1:3) %>% arrange(Sepal.Length))

# [[1]]
# # A tibble: 3 x 5
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# <dbl>       <dbl>        <dbl>       <dbl>  <fctr>
# 1          4.7         3.2          1.3         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa
# 3          5.1         3.5          1.4         0.2  setosa
# 
# [[2]]
# # A tibble: 3 x 5
# Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
# <dbl>       <dbl>        <dbl>       <dbl>    <fctr>
# 1          6.3         2.5          5.0         1.9 virginica
# 2          6.7         3.3          5.7         2.5 virginica
# 3          6.7         3.0          5.2         2.3 virginica

这就是如何通过微小修正使您的解决方案正常工作:

lapply(your_list,function(x) x[1:3,] %>% arrange(Sepal.Length))