r - 使用带有 dplyr 管道语法的 base 中的 table() 函数?

标签 r dplyr

我喜欢 dplyr 的语法,但我正在努力以与基本 R table() 函数相同的方式轻松获取列联表。 table() 没问题,但我不知道如何将它合并到 dplyr 管道语法中。

感谢您的帮助。

这是一些示例数据,其中包含我想要获得的输出。

df <- tibble(id=c(rep("A",100),rep("B",100),rep("C",100)),
               val=c(rnorm(300,mean=500,sd=100))) %>%
  mutate(val_bin=cut(val,breaks=5))

table(df$id,df$val_bin)

输出:
    (210,325] (325,440] (440,554] (554,669] (669,784]
  A         4        22        55        18         1
  B         6        19        46        24         5
  C         3        23        44        22         8

最佳答案

一种选择是使用 with :

df %>%
  with(., table(id, val_bin))
#    val_bin
# id  (228,327] (327,426] (426,525] (525,624] (624,723]
#   A         4        19        39        22        16
#   B         5        15        41        32         7
#   C         5        14        44        25        12

从技术上讲,.不需要,

df %>%
  with(table(id, val_bin))

但我发现在可能容易混淆数据去向(在 withtable 内)的情况下,它可能会更清楚一些。 (提示:它几乎总是第一个函数,with 在这里。)

关于r - 使用带有 dplyr 管道语法的 base 中的 table() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60234443/

相关文章:

r - "asymmetric"成对距离矩阵

将字符 ID 重新编码为数字 ID

r - 重复的行意味着原始变量

r - 如何按组(ID)复制最后一行?

r - 将有图例的图与没有图例的图结合起来

r - 像 R/SAS 这样的统计编程语言被认为是功能性的还是程序性的

r - 在R中的谷歌地图上绘制多个点的坐标

r - 如何迭代自变量,使用 tidyverse 框架执行多元线性回归?

r - 根据列名向量在列表中按列子集数据帧并汇总列

跨两个因子水平或时间点的滚动加权平均值