首页 > 解决方案 > 如何汇总多列的值?

问题描述

我有一个看起来像这样的数据框:

1  2  3  4  5

A  B  A  B  A

C  B  B  B  B 

A  C  A  B  B

我想在一个频率表中总结我的数据,如下所示:

   A  B  C
1  2  0  1
2  0  2  1
3  2  1  0
4  0  3  0
5  1  2  0

我怎么能做到这一点?

标签: rcrosstab

解决方案


您可以使用以下解决方案:

library(tidyr)
library(janitor)

tab %>%
  pivot_longer(everything(), names_to = "nm", values_to = "val", 
               names_prefix = "X") %>%
  tabyl(nm, val)

 nm A B C
  1 2 0 1
  2 0 2 1
  3 2 1 0
  4 0 3 0
  5 1 2 0

推荐阅读