首页 > 解决方案 > R中多列的值计数

问题描述

我有一个数据集,其中一组值分散在多列中:

ID 优先级 1 优先级 2 优先级 3
2308 写作 阅读 阅读
0329 阅读 沟通 写作
2389 沟通 写作 沟通
2934 写作 沟通 写作

我希望输出是一个表,其中第一列是找到的唯一值(写作、阅读、通信),其余列是优先级(优先级 1、优先级 2、优先级 3)。在每一列中应该是该实例的优先级计数。输出应如下所示:

优先类型 优先级 1 优先级 2 优先级 3
写作 2 1 2
阅读 1 1 1
沟通 1 2 1

在我的实际数据集中,有很多优先级,所以如果可能的话,我们可以为列包含 1:n 吗?

先感谢您。

*编辑表已更新为新列以进行澄清。我想完全忽略 ID 列,只计算每个优先级列中的优先级。

标签: rcount

解决方案


table(stack(df))

               ind
values          Priority 1 Priority 2 Priority 3
  Communication          1          2          1
  Reading                1          1          1
  Writing                2          1          2

如果您希望它作为数据框:

as.data.frame.matrix(table(stack(df)))
              Priority 1 Priority 2 Priority 3
Communication          1          2          1
Reading                1          1          1
Writing                2          1          2

推荐阅读