我喜欢 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))
但我发现在可能容易混淆数据去向(在
with
或 table
内)的情况下,它可能会更清楚一些。 (提示:它几乎总是第一个函数,with
在这里。)
关于r - 使用带有 dplyr 管道语法的 base 中的 table() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60234443/