dplyr:如何使用select和filter内部函数; (...)不参与争论

Jon*_*nny 5 r dplyr

我正在尝试构建一些函数来从问卷创建标准表,使用dplyr进行数据操作.这个问题对于group_by函数非常有用,它传递参数(在这种情况下,我想用来制作表的变量的名称)(...),但是当试图将相同的参数传递给其他dplyr命令时,这似乎会中断,特别是'选择'和'过滤'.我得到的错误信息是'...' used in an incorrect context'.

有没有人对此有任何想法?谢谢

为了完整性(以及任何其他提示 - 我是编写函数的新手),这里是我想要使用的代码:

myTable <- function(x, ...) {
df <-  
    x %>%
    group_by(Var1, ...) %>%
    filter(!is.na(...) & ... != '') %>% # To remove missing values: Not working!
    summarise(value = n()) %>%
    group_by(Var1) %>%
    mutate(Tot = sum(value)) %>%
    group_by(Var1, ...) %>%
    summarise(num = sum(value), total = sum(Tot), proportion = num/total*100) %>%
    select(Var1, ..., proportion) # To select desired columns: Not working!

tab <- dcast(df, Var1 ~ ..., value.var = 'proportion')
tab[is.na(tab)] <- 0
print(tab)
}
Run Code Online (Sandbox Code Playgroud)