计数出现以r中的多个其他列为条件

时间:2018-02-26 06:49:30

标签: r matrix count dplyr

假设我有一个数据框,其中每个人都被表示为具有特定剂量类别(1-4)和特定后续类别(1-7)。

dose_followup = data.frame(
         dose = c(3,1,2,2,4,3,1,4,1,3,3,2,4,1,3,3),
         followup = c(2,4,2,1,6,2,7,3,6,3,5,5,6,4,2,2))

如何计算共现次数并存储?例如,剂量== 3发生,随后== 2总共4次。我想进行计数(即4)并将其打印或将值4存储在矩阵的单元格中,对应于剂量== 3并跟进== 2.

我的实际数据框很大,但它只有4个剂量类别和7个后续类别。所以输出矩阵很小。

我尝试过使用group_by()和summarize()的各种方法,但没有成功。感谢您的任何帮助。

1 个答案:

答案 0 :(得分:1)

一个简单的table会这样做:

table(dose_followup)

结果:

     followup
dose 1 2 3 4 5 6 7
   1 0 0 0 2 0 1 1
   2 1 1 0 0 1 0 0
   3 0 4 1 0 1 0 0
   4 0 0 1 0 0 2 0

如果您坚持使用tidyverse,可以使用

dose_followup %>% group_by(dose, followup) %>% summarise(n())

结果:

1.00     4.00     2
1.00     6.00     1
1.00     7.00     1
2.00     1.00     1
2.00     2.00     1
2.00     5.00     1
3.00     2.00     4
3.00     3.00     1
3.00     5.00     1
4.00     3.00     1
4.00     6.00     2