Have you gone through this link? Programming with dplyr
Do any of these help?
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
CoolData <- data.frame(Reference = rep(x = c("Todd", "Liz"),
each = 5),
Var1 = rep(1:2, 5),
Var2 = rep(1:5, 2),
Var3 = c( rep(0, 3), rep(1, 7)))
Fun1 <- function(df, column)
{
df %>%
select(Reference, !!column, Var3) %>%
group_by(Var3) %>%
count(!!column)
}
Fun1(df = CoolData,
column = quo(Var2))
#> # A tibble: 8 x 3
#> # Groups: Var3 [2]
#> Var3 Var2 n
#> <dbl> <int> <int>
#> 1 0 1 1
#> 2 0 2 1
#> 3 0 3 1
#> 4 1 1 1
#> 5 1 2 1
#> 6 1 3 1
#> 7 1 4 2
#> 8 1 5 2
Fun2 <- function(df, column)
{
column = enquo(arg = column)
df %>%
select(Reference, !!column, Var3) %>%
group_by(Var3) %>%
count(!!column)
}
Fun2(df = CoolData,
column = Var2)
#> # A tibble: 8 x 3
#> # Groups: Var3 [2]
#> Var3 Var2 n
#> <dbl> <int> <int>
#> 1 0 1 1
#> 2 0 2 1
#> 3 0 3 1
#> 4 1 1 1
#> 5 1 2 1
#> 6 1 3 1
#> 7 1 4 2
#> 8 1 5 2
Created on 2019-08-12 by the reprex package (v0.3.0)