我正在尝试编写一个 R 函数来生成频率表,这样我就可以标准化格式等,而无需重复输入。唯一的问题是我无法正确评估分组变量。
下面是一些代码来获取一个迷你数据集来重现问题:
library(tidyverse)
id <- sample(1:500, 5)
factors <- sample(1:3, 5, replace = TRUE)
data <- data.frame(id, factors)
freqTable <- function(x, field){
Table <- x %>%
group_by(field) %>%
summarise(N = n(), Percent = n()/NROW(x)*100) %>%
mutate(C.Percent = cumsum(Percent))
return(Table)
}
freqTable(data, "factors")
结果是:
resolve_vars(new_groups, tbl_vars(.data)) 中的错误:要分组的未知变量:字段调用自:resolve_vars(new_groups, tbl_vars(.data))
我也试过:
freqTable <- function(x, field){
Table <- x %>%
group_by(paste(field)) %>%
summarise(N = n(), Percent = n()/NROW(x)*100) %>%
mutate(C.Percent = cumsum(Percent))
return(Table)
}
哪个效果更好(因为它不会出错),但实际上仍然没有正确分组因素,输出:
# A tibble: 1 × 4
`paste(field)` N Percent C.Percent
<chr> <int> <dbl> <dbl>
1 factors 5 100 100
它只是告诉我该列中的案例数量。有谁知道我要去哪里错了?