通常,当我计算数据框中的一列时,我会使用dplyr包中的count()函数.

library(dplyr)

mtcars %>% 
  count(cyl) 

mtcars %>% 
  count(am) 

mtcars %>% 
  count(gear) 

等等.. 现在我想一口气数到cyl, am, gear.

Note: I don't mean

mtcars %>%
 count(cyl, am, gear)

我到目前为止的工作方法是:


library(dplyr)
library(tidyr)

mtcars %>% 
  count(am) %>% 
bind_rows(mtcars %>% 
            count(cyl)) %>% 
  bind_rows(mtcars %>% 
              count(gear)) %>% 
pivot_longer(-n, 
             values_drop_na = TRUE) %>% 
  unite("variable", c("name", "value")) %>% 
  relocate(variable, n)
  variable     n
  <chr>    <int>
1 am_0        19
2 am_1        13
3 cyl_4       11
4 cyl_6        7
5 cyl_8       14
6 gear_3      15
7 gear_4      12
8 gear_5       5

我想知道是否有更简明的方法来实现这一点.

推荐答案

也许是旋转和计数?

library(dplyr)
library(tidyr) # pivot_longer
select(mtcars, am, cyl, gear) |>
  pivot_longer(cols = everything()) |>
  count(name, value)
# # A tibble: 8 × 3
#   name  value     n
#   <chr> <dbl> <int>
# 1 am        0    19
# 2 am        1    13
# 3 cyl       4    11
# 4 cyl       6     7
# 5 cyl       8    14
# 6 gear      3    15
# 7 gear      4    12
# 8 gear      5     5

如果你想的话,你可以通过把名字粘在一起来"清理".

R相关问答推荐

给定R中另一行中的值,如何插补缺失值

如何使用R Shiny中的条件面板仅隐藏和显示用户输入,同时仍允许运行基础计算?

根据R中两个变量的两个条件删除带有dspirr的行

矩阵%*%矩阵中的错误:需要数字/复杂矩阵/向量参数

如何优化向量的以下条件赋值?

在ggplot中为不同几何体使用不同的 colored颜色 比例

R函数,用于生成伪随机二进制序列,其中同一数字在一行中不出现超过两次

矩阵的堆叠条形图,条形图上有数字作为标签

使用RSelenium在R中抓取Reddit时捕获多个标签

仅在R中的数据集开始和结束时删除所有 Select 列的具有NA的行

是否有新方法来更改Facet_WRAP(Ggplot2)中条文本的文本 colored颜色 ?

计算直线上点到参考点的总距离

正在导出默认的RStudio主题,还是设置括号 colored颜色 ?

在R中,如何将误差条放置在堆叠的每个条上?

防止正则表达式覆盖以前的语句

如何根据其他列中的两个条件来计算数据帧中的行之间的差异?

Ggplot2如何找到存储在对象中的残差和拟合值?

使用一个标签共享多个组图图例符号

将`magick`对象转换为原始向量

根据列和行的不同组合 Select 各种单元格