R:根据元素中的值对列表进行排序,理想情况下是使用purr/tidyverse的某个链接
我希望根据条件在列表中排列项目,就像dplyr::arrange对data.frames所做的那样(同时保持链接语法) 我希望这样的东西存在,但没能找到 编辑:为了清晰起见,我删除了变量“l”R:根据元素中的值对列表进行排序,理想情况下是使用purr/tidyverse的某个链接,r,sorting,tidyverse,purrr,R,Sorting,Tidyverse,Purrr,我希望根据条件在列表中排列项目,就像dplyr::arrange对data.frames所做的那样(同时保持链接语法) 我希望这样的东西存在,但没能找到 编辑:为了清晰起见,我删除了变量“l” EDIT2:无法更改为沿路径的TIBLE,以使用dplyr::arrange,因为元素可能不支持此功能,或者它们可能没有匹配的名称您可以取消列表,排序,然后使用重新列表将其放回相同的结构中 relist(sort(unlist(l)), l) #[[1]] #[[1]]$foo #[1] "bar"
EDIT2:无法更改为沿路径的TIBLE,以使用dplyr::arrange,因为元素可能不支持此功能,或者它们可能没有匹配的名称您可以
取消列表
,排序
,然后使用重新列表
将其放回相同的结构中
relist(sort(unlist(l)), l)
#[[1]]
#[[1]]$foo
#[1] "bar"
#[[2]]
#[[2]]$foo
#[1] "baz"
#[[3]]
#[[3]]$foo
#[1] "test"
我还可以获取$foo,订购它,然后根据该索引重新订购。但是我需要能够将它与其他tidyverse方法Callssory链接起来,我没有得到它。当前方法存在什么问题?如果你想使用管道,你可以做
l%>%unlist%>%sort%>%relist(l)
是的,就像那样,只需要在第一个地方没有一个“l”。我本来可以说得更清楚的。我将有一个任意长度的方法调用链,我想在某个时候重新排列。我在问是否有一种整洁的方式可以做到这一点。这意味着您不需要停下来保存数据,然后重新排列。当然,在本例中,但对于一般方法,它不会在更改backSo之前将数据更改为TIBLE。您不想转换为TIBLE进行排序吗?你能把所有的限制都写在你的原始帖子里吗?这样回答的人就明白了。
relist(sort(unlist(l)), l)
#[[1]]
#[[1]]$foo
#[1] "bar"
#[[2]]
#[[2]]$foo
#[1] "baz"
#[[3]]
#[[3]]$foo
#[1] "test"