【发布时间】:2019-12-31 17:58:36
【问题描述】:
考虑下面的 MWE,我们有 Amt 表示每个 Food 项目的不同数量(从 1 到 40,NAs),另一个变量表示该食品项目的 Site。我想要一个汇总的中位数和 n() 的食品数量,但对于那些没有 NA 的食物。
MWE
mwe <- data.frame(
Site = sample(rep(c("Home", "Office"), size = 884)),
Food = sample(rep(c("Banana","Apple","Egg","Berry","Tomato","Potato","Bean","Pea","Nuts","Onion","Carrot","Cabbage","Eggplant"), size=884)),
Amt = sample(seq(1, 40, by = 0.25), size = 884, replace = TRUE)
)
random <- sample(seq(1, 884, by = 1), size = 100, replace = TRUE) # to randomly introduce 100 NAs to Amt vector
mwe$Amt[random] <- NA
数据框
Site Food Amt
1 Office Cabbage 16.50
2 Home Apple 36.00
3 Office Egg 7.25
4 Home Onion 16.00
5 Office Eggplant 36.50
6 Home Nuts NA
摘要代码
dfsummary <- mwe %>%
dplyr::group_by(Food, Site) %>%
dplyr::summarise(Median = round(median(Amt, na.rm=TRUE), digits=2), N = n()) %>%
ungroup()
输出
# A tibble: 6 x 4
Food Site Median N
<fct> <fct> <dbl> <int>
1 Apple Home 17 34
2 Apple Office 22.2 34
3 Banana Home 19.5 34
4 Banana Office 19.9 34
5 Bean Home 20 34
6 Bean Office 18 34
一些食品显示 NA 值,但它们在 N 计数中发挥了作用。我只是不想在Amt 向量中计算那些带有NAs 的人。
【问题讨论】: