我想写一个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(。数据)):未知 变量来分组:来自: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
如果它只是告诉我是该栏中的病例数。有人知道我要去哪里吗?
退房 “有dplyr小品节目”:https://cran.r-project.org/web/packages/dplyr /vignettes/programming.html – sinQueso