使用dplyr按组汇总未按预期工作

jjjwad0x  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(134)

我试图总结一个数据框架的人口统计信息,但遇到了一些问题。按性别细分,有4种可能的选项供参与者选择:1、2、3、4,空白(无响应)被R视为NA值。我得到了每种性别的正确计数,但当试图获得每种性别的平均值时,我遇到了问题。
我想保留NA值的观察结果,因为虽然它们可能没有回答人口统计学信息,但它们回答了其他问题,因此我不想简单地从 Dataframe 中删除这些行。
这是我尝试过的

#df$q10: what is your gender

by_gender = df %>% 
   group_by(df$Q10)  %>% 
   dplyr::summarize(count = n(), 
                    AvgAge = mean(df$Q11_1_TEXT, na.rm = TRUE))

by_gender

这会为所有性别返回与

mean(df$Q11_1_TEXT, na.rm = TRUE)

性别和年龄列都有NA值,我怀疑这可能是问题所在?我尝试添加na.rm = T,但似乎不起作用。我还可以尝试什么?
编辑:删除$使函数按预期工作。

lo8azlld

lo8azlld1#

当您请求mean(df$Q11_1_TEXT)时,它将根据原始未分组向量计算平均值,而如果您使用mean(Q11_1_TEXT),它将在从上一步接收的分组 Dataframe 中查找Q11_1_TEXT。
比较:

mtcars %>% 
  group_by(gear) %>% 
  summarize(wt_ttl = sum(wt), 
            wt_ttl2 = sum(mtcars$wt))

# A tibble: 3 × 3
   gear wt_ttl wt_ttl2
  <dbl>  <dbl>   <dbl>
1     3   58.4    103.
2     4   31.4    103.
3     5   13.2    103.

相关问题