首页 > 解决方案 > 在新数据框中汇总表值

问题描述

因此,我希望获得一些统计数据,例如下表中所有列的“是”和“否”。

问题 1 问题2 问题 3
是的 是的
是的
是的 是的
是的

目标是获得以下数据框(列和行可以切换,对我没有任何影响):

/ 是的
问题 1 3 2
问题2 2 3
问题 3 1 4

我发现的唯一方法很长(table(column) --> read.table(text) --> rbind 到为前一列创建的前一个数据框)并且需要大量手动操作。

有没有办法一次性完成所有这些?

谢谢您的帮助 !

标签: r

解决方案


这是否有效:

library(dplyr)
library(tidyr)
df %>% pivot_longer(everything()) %>% count(name, value) %>% 
    pivot_wider(id_cols = name, names_from = value, values_from = n)
# A tibble: 3 x 3
  name          no   yes
  <chr>      <int> <int>
1 Question 1     2     3
2 Question 2     3     2
3 Question 3     4     1

推荐阅读