Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 按另一个因子对因子分组的每一级进行计数_R_Dplyr - Fatal编程技术网

R 按另一个因子对因子分组的每一级进行计数

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

我想要一个数据帧输出,其中记录变量的4个级别(“是”和“否”)中的计数2。我可以通过对是或否进行子集设置和筛选来实现这一点,但我觉得一定有更好的方法来使用dplyr实现这一点

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