作为学习 dplyr 及其同类的问题。
我正在计算一个以 df 中的其他两个变量为条件的因子的计数和相对频率。例如:
library(dplyr)
library(tidyr)
set.seed(3457)
pct <- function(x) {x/sum(x)}
foo <- data.frame(x = rep(seq(1:3),20),
y = rep(rep(c("a","b"),each=3),10),
z = LETTERS[floor(runif(60, 1,5))])
bar <- foo %>%
group_by(x, y, z) %>%
tally %>%
mutate(freq = (n / sum(n)) * 100)
head(bar)
我希望输出 ,bar
包括foo$z
. 即,这里没有案例C
:
subset(bar, x==2 & y=="a")
我怎样才能bar
计算缺失的水平,所以我得到:
subset(bar, x==2 & y=="a",select = n)
返回 4、5、0、1(并select = freq
给出 40、50、0、10)?
非常感谢。
编辑:带着种子组跑!