【发布时间】:2018-09-05 07:06:33
【问题描述】:
假设我有一个数据框,其中包含多个作为因子的列和一个感兴趣的列 colA。
例如,假设数据框如下所示:
colA | colB | colC | colD
--------------------------
1 | 'a' | 1 | 2
1 | 'b' | 2 | 3
4 | 'b' | 2 | 4
2 | 'a' | 3 | 1
3 | 'a' | 2 | 6
3 | 'b' | 1 | 6
我想根据 colA 的 group-by 来总结每一列,但以某种方式构造它,以便 colB、colC、colD 的值分布在行上,而 colA 的值分布在列。也就是说,当 colA 的值为 1 时,当 colA 的值为 2 时,我想要 colB 值的计数(每个 colB 的值一行),依此类推。 colC 和colD 相同。生成的数据框如下所示:
colA_value1 | colA_value2 | colA_value3 | colA_value4
-----------------------------------------------------
colB_a | 1 | 1 | 1 | 0
colB_b | 1 | 0 | 1 | 1
colC_1 | 1 | 0 | 1 | 0
colC_2 | 1 | 0 | 1 | 1
colC_3 | 0 | 1 | 0 | 0
colD_1 | 0 | 1 | 0 | 0
colD_2 | 1 | 0 | 0 | 0
colD_3 | 1 | 0 | 0 | 0
colD_4 | 0 | 0 | 0 | 1
colD_6 | 0 | 0 | 2 | 0
优先使用 tidyverse 软件包。
【问题讨论】:
-
如果您提供一个您已经尝试过的可重现示例,那么回答您的问题会容易得多。也许您的示例数据框带有
dput(my_data),这样人们就可以复制粘贴而不是再次构建您的数据。 -
@alistaire 酷! :)