首页 > 解决方案 > 如何总结R中的比例?

问题描述

我希望通过购买类别(15个类别)说出年龄组(两个年龄组)的比例,以便做一个Z双样本比例测试。

数据就像

类别 年龄阶层
蔬菜 更年轻
饮料 中老年人
蔬菜 更年轻
家禽 中老年人

但 R 输出显示以下错误。

> aggregate(x = newdata$category,               
+           by = list(newdata$agegroup),              
+           FUN = sum)
Error in Summary.factor(c(14L, 14L, 14L, 11L, 14L, 14L, 14L, 14L, 9L,  : 
  ‘sum’ not meaningful for factors

当我对类别数据进行数字化时,它不会显示每个年龄组的按类别比例。

> aggregate(x = newdata$category,               
+                        by = list(newdata$agegroup),              
+                        FUN = sum)
  Group.1       x
1 Mid_Old  728994
2 Younger 5206038

标签: r

解决方案


你需要这样的东西吗?

df <- data.frame(category = c("vegetable", "beverages", "vegetable", "poultry"),
                 group = c("younger", "middle and older", "younger", "middle and older"))

df %<>% 
  group_by(group) %>%
  summarise(n = n()) %>%
  mutate(freq = n/sum(n))

输出:

> df
# A tibble: 2 x 3
  group                n  freq
  <chr>            <int> <dbl>
1 middle and older     2   0.5
2 younger              2   0.5


推荐阅读