小编Jac*_*son的帖子

如何在 R 中构建一次汇总多个值的表

我有一个包含多个列的数据框(标题为 df1),其中包含 Yes、No 或 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
Run Code Online (Sandbox Code Playgroud)

我的目标是创建一个表来计算每个答案的频率并输出一个带有原始列名的表,如下所示:

  Answer A B C D
1    Yes 2 1 1 2
2     No 1 2 3 1
3   <NA> 1 1 0 1
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的方法是构建一个函数,然后在该函数上循环,但输出不会生成包含所有类别(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])
}
Run Code Online (Sandbox Code Playgroud)

如果有更简单的方法,我也愿意接受不同的方法,但是 …

loops r function dataframe dplyr

3
推荐指数
1
解决办法
44
查看次数

标签 统计

dataframe ×1

dplyr ×1

function ×1

loops ×1

r ×1