如何修改 dplyr 函数以免出现错误:列“column”未知?

Wan*_*ith 2 r pipe dplyr

嗨,我不断收到Error: Column column is unknown错误dplyr。我无法修改函数来消除错误。我之所以想做这个函数,是因为我必须对其他变量重复这个过程。
数据可以在这里找到:http ://www.personal.psu.edu/dlp/w540/datasets/titanicsurvival.csv

one_col_count <- function(data, column){

  data %>%
        group_by(column)%>%
        count() %>%
        ungroup() %>%
        add_row(column= "Total",  n= sum(.$n)) -> dataset

  return(dataset)
}

survival_count <- one_col_count(dat, as.name("Survived"))

#dat is a data.frame where I changed to types of every column to factor

#Whereas this works
#survival_count <- dat %>%
#                     group_by(Survived)%>%
#                     count() %>%
#                     ungroup() %>%
#                     add_row(Survived= "Total", 
#                             n= sum(.$n))

#And I get the output
## A tibble: 3 x 2
#  Survived     n
#  <fct>    <int>
#1 No        1490
#2 Yes        711
#3 Total     2201

Run Code Online (Sandbox Code Playgroud)

我已经查看了几个出现此错误的堆栈溢出,但它们有不同的问题并且与我的无关。请注意,我的 R 词汇量不是那么大,所以也许有一个答案,但由于缺乏适当的词汇,我可能忽略了它。有任何帮助、提示或指示来消除错误吗?真的很感激。

Ron*_*hah 5

用于{{}}传递不带引号的列名。

library(dplyr)

one_col_count <- function(data, column){

  data %>%
    group_by({{column}})%>%
    count() %>%
    ungroup() %>%
    add_row({{column}} := "Total",  n= sum(.$n))

   return(dataset)
}

one_col_count(dat, Survived)
Run Code Online (Sandbox Code Playgroud)

  • @AgentSmith 我更新了答案,你现在可以查看吗? (3认同)
  • 谢谢@cmirian,我自己没有用过它,但我看到人们经常推荐 Hadley 的书,可以在 http://adv-r.had.co.nz/ 上找到。也许这对你有帮助。 (2认同)