我想知道是否有一种 DRY 方式来编写以下管道:
library(tidyverse)
data(iris)
iris %>% arrange(Sepal.Width, Species) %>% select(Sepal.Width, Species)
这非常有效,但如果需要更改代码,我有两个地方需要编辑。
有没有办法重写代码,使变量在管道中只列出一次?
我希望有一种方法可以存储变量列表 v
然后调用:
iris %>% arrange(v) %>% select(v)
我尝试使用quote
、Sym
和Non Standard Evaluation 的许多其他功能为了存储变量列表无济于事。
所有这些答案对这个问题都没有帮助:
r - how to use a variable in a variable
最佳答案
我想你要找的是:
library(tidyverse)
vars <- quos(Sepal.Width, Species)
iris %>% arrange(!!!vars) %>% select(!!!vars)
我假设你的意思是 select
而不是 filter
因为 iris %>% arrange(Sepal.Width, Species) %>% filter( Sepal.Width, Species)
抛出错误
关于r - 在 R 中为管道中的多个操作枚举变量时 DRY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53454013/