I am trying to write a function, but the second filter condition
{{var1}} == 1
in this function eliminates all rows. Can someone help with the syntax?
compute_num0 = function(var1) {
res_num = df1 %>%
filter(!is.na({{var1}}), {{var1}} == 1) %>%
group_by(year, city, .drop = FALSE) %>% summarize(counts = n()) %>%
select(year,city,counts) %>% as.data.frame()
res_num
}
compute_num0('x') # produces all zero counts
This is some sample data
library(tidyverse)
set.seed(2021)
numRows = 1000
df1 = data.frame(year = sample(2010:2018, size = numRows, replace = TRUE),
race = sample(c('white', 'black', 'Asian', 'Hispanic'), size = numRows, replace = TRUE),
city = sample(c('Oakland', 'Berkeley','Fremont'), size = numRows, replace = TRUE),
young = sample(c(1,2,NA), size = numRows, replace = TRUE),
old = sample(c(1,2,NA), size = numRows, replace = TRUE),
x = sample(x = c(1,2, NA), size = numRows, replace = TRUE, prob = c(.7, .2, .1)),
y = sample(x = 1:10, size = numRows, replace = TRUE),
z = sample(x = 1:10, size = numRows, replace = TRUE))
df1$year = factor(df1$year)
df1$race = factor(df1$race)
df1$city = factor(df1$city)