【发布时间】:2021-10-15 06:12:57
【问题描述】:
我有一个数据框(标题为 df1),其中包含多个列,其中包含是、否或 NA 答案。
A B C D
1 Yes No No Yes
2 Yes No No No
3 <NA> Yes Yes <NA>
4 No <NA> No Yes
我的目标是创建一个表格,统计每个答案的频率,并输出一个原始列名的表格,如下所示:
Answer A B C D
1 Yes 2 1 1 2
2 No 1 2 3 1
3 <NA> 1 1 0 1
到目前为止,我的方法是构建一个函数然后循环遍历该函数,但输出不会生成包含所有类别(A 到 D)的表。
my_function <- function(table_name,col_name) {
table_name %>%
group_by_(Answer = col_name) %>%
summarise(!!paste0(col_name):= n())}
my_categories <- c("A","B","C","D")
for(i in 1:length(my_categories)){
df2 <- myfunction(df1,CSAT_Cols[i])
}
如果有更简单的方法,我也愿意接受不同的方法,但 TL:DR 尝试按多个类别循环分组,通过 n() 进行汇总,然后创建包含所有数据的单个表。
【问题讨论】:
标签: r dataframe function loops dplyr