R 按另一个因子对因子分组的每一级进行计数
我想要一个数据帧输出,其中记录变量的4个级别(“是”和“否”)中的计数2。我可以通过对是或否进行子集设置和筛选来实现这一点,但我觉得一定有更好的方法来使用dplyr实现这一点R 按另一个因子对因子分组的每一级进行计数,r,dplyr,R,Dplyr,我想要一个数据帧输出,其中记录变量的4个级别(“是”和“否”)中的计数2。我可以通过对是或否进行子集设置和筛选来实现这一点,但我觉得一定有更好的方法来使用dplyr实现这一点 null.ta <- dbdata %>% filter(MutGroup == "Null") %>% group_by(ICD_Grouping) %>% summarise(n()) %>% spread(???????) 我想要一个如下的输出 ICD_Grouping Yes No
null.ta <- dbdata %>%
filter(MutGroup == "Null") %>%
group_by(ICD_Grouping) %>%
summarise(n()) %>%
spread(???????)
我想要一个如下的输出
ICD_Grouping Yes No N/A
C22 2 1 0
C45 7 3 1
C69 4 0 0
这是一个随机数据的例子,而不是这个数据。我想要一个数据框,其中包含ICD_分组免疫组织化学中每个因子水平的计数。如果我理解正确,我们可以使用base
表来实现这一点:
table(dbdata)
表格
将显示每个级别的结果(即使数据中不再显示),因此为了使表格大小合理,我们首先使用液滴级别
删除未使用的级别:
table(droplevels(dbdata))
Immunohistochemistry
ICD_Grouping N/A No Yes
C22 0 0 1
C33-34 0 0 2
C37-39 1 0 0
C43 0 2 7
C44 1 2 8
C45 2 0 17
C47/49 1 0 0
C50 0 1 4
C64 0 0 10
C69 7 0 2
C70 1 0 6
C73 0 1 1
D22 8 0 30
表格
可通过以下方式转换为具有相同结构的data.frame:
table(droplevels(dbdata)) %>%
as.data.frame.matrix() %>%
tibble::rownames_to_column('ICD_Grouping')
或者,如果您喜欢管道:
dbdata %>%
droplevels() %>%
table() %>%
as.data.frame.matrix() %>%
tibble::rownames_to_column('ICD_Grouping')
两者都提供相同的数据。因此,帧
:
ICD_Grouping N/A No Yes
1 C22 0 0 1
2 C33-34 0 0 2
3 C37-39 1 0 0
4 C43 0 2 7
5 C44 1 2 8
6 C45 2 0 17
7 C47/49 1 0 0
8 C50 0 1 4
9 C64 0 0 10
10 C69 7 0 2
11 C70 1 0 6
12 C73 0 1 1
13 D22 8 0 30
此表单是一个适当的数据框,可用于任何下游流程,或加入ICD_分组
变量请包含一部分数据(使用dput
并将输出粘贴到问题中)渴望output@divibisan抱歉-现在已经包含了额外的信息。我以前也这样做过,但我没有注意到需要将ICD_分组作为一个确定的列,用于与其他表的左_联接。我有多个表在ICD_分组上留下连接。这就是为什么我尝试使用dplyr包,因为tibble输出对于左连接非常有效。@SebWalpole您可以轻松地将表的输出转换为在dplyr链中工作的格式
ICD_Grouping N/A No Yes
1 C22 0 0 1
2 C33-34 0 0 2
3 C37-39 1 0 0
4 C43 0 2 7
5 C44 1 2 8
6 C45 2 0 17
7 C47/49 1 0 0
8 C50 0 1 4
9 C64 0 0 10
10 C69 7 0 2
11 C70 1 0 6
12 C73 0 1 1
13 D22 8 0 30