在列表上使用dplyr应用和排序?
有人能解释一下我是如何使用apply家族中的一些东西在一个列表中实现这一点的吗在列表上使用dplyr应用和排序?,r,list,dplyr,tidyr,R,List,Dplyr,Tidyr,有人能解释一下我是如何使用apply家族中的一些东西在一个列表中实现这一点的吗 list1[[1]][1:31,] %>% arrange(vuln) 基本上,我需要做的就是选择行1:31,然后使用vuln排列数据集。上面实现了这一点,但在列表中的第一个数据帧上实现了这一点。我在猜测类似的事情: apply(list1,2,function(x)list[x][1:31] %>% arrange(vuln)) 但上述措施似乎并不奏效。也只是为了比较,我能看到一个相同的循环吗 谢谢
list1[[1]][1:31,] %>% arrange(vuln)
基本上,我需要做的就是选择行1:31,然后使用vuln排列数据集。上面实现了这一点,但在列表中的第一个数据帧上实现了这一点。我在猜测类似的事情:
apply(list1,2,function(x)list[x][1:31] %>% arrange(vuln))
但上述措施似乎并不奏效。也只是为了比较,我能看到一个相同的循环吗
谢谢 这将是
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
你没有提供任何数据,所以这里是我的猜测
lappy(list1,函数(i){d1lappy(list1,slice,1:31)%%>%lappy(arrange,vuln)
,仅使用管道和lappy。Vlo的答案似乎已经完成了这个技巧,非常简单。谢谢!谢谢……我认为上面的答案与Vlo的答案非常相似:)虽然使用了相同的函数,但我只在项目上循环了一次,他循环了两次,我使用了purr
,因为它与管道符号配合得更好。不过,索托斯的解决方案会更快。
lapply(your_list,function(x) x[1:3,] %>% arrange(Sepal.Length))