R获取折叠的计数-桌子和桌子不给我我想要的东西

时间:2019-12-11 17:57:58

标签: r

使用mtcars,我想对am,齿轮和carb进行计数。前几行看起来像这样:

am  gear carb
1   4     4
1   4     4
1   4     1
0   3     1
0   3     2
0   3     1
0   3     4
0   4     2
0   4     2


我想获得如下所示的输出:

am  gear carb   Count
0   3     1      2
0   3     2      1
0   3     4      1
0   4     2      2
1   4     1      1
1   4     4      2

表和ctable(summarytools)在将所有数字都用尽的地方做了一些奇怪的事情,这不是我想要的。

谢谢

2 个答案:

答案 0 :(得分:1)

我们可以使用count

library(dplyr)
df1 %>%
      count(am, gear, carb)
# A tibble: 6 x 4
#     am  gear  carb     n
#  <int> <int> <int> <int>
#1     0     3     1     2
#2     0     3     2     1
#3     0     3     4     1
#4     0     4     2     2
#5     1     4     1     1
#6     1     4     4     2

df1 %>%
    group_by_all() %>%
    summarise(Count = n())

数据

df1 <- structure(list(am = c(1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L), gear = c(4L, 
4L, 4L, 3L, 3L, 3L, 3L, 4L, 4L), carb = c(4L, 4L, 1L, 1L, 2L, 
1L, 4L, 2L, 2L)), class = "data.frame", row.names = c(NA, -9L
))

答案 1 :(得分:0)

使用基数R,您也可以执行以下操作:

as.data.frame(table(df1))

并过滤不存在​​的组合:

freqs <- as.data.frame(table(df1))
freqs[freqs$Freq > 0,]