【问题标题】:Group_by and summarize behave strangely and do not provide expected resultsGroup_by 和 summarise 行为异常,不提供预期结果
【发布时间】:2020-12-29 03:10:23
【问题描述】:

虽然之前使用过 dplyr,但我遇到了目前我还没有充分理解的问题。

我正在使用的研究数据集的一部分有 +2500 个不同的行。 这些行是来自一项研究的 515 所房屋的不同受访者。

我想总结受访者在学校度过的年数(第 [, 7] 列)并按房屋 ID 分组(第 [, 26] 列)。所有学年的平均成绩为 3.65(样本取自乌干达)。

现在,当我运行以下代码时:

library(dplyr)
df_house %>%
  dplyr::group_by(House = df_house[, 26]) %>%
  dplyr::summarise(Avg_school = mean(df_house[,7], na.rm = TRUE))

我得到以下结果:

A tibble: 510 x 2
   House Avg_school
   <dbl>      <dbl>
 1     1       3.65
 2     2       3.65
 3     3       3.65
 4     4       3.65
 5     5       3.65
 6     6       3.65
 7     7       3.65
 8     8       3.65
 9     9       3.65
10    10       3.65
# ... with 500 more rows

我有两个问题: 首先,显然summary 并没有总结每个house_id 的平均值。 其次,我只得到了 510 个组,而不是预期的 515 个不同的房子。

我查看了 class() 和 typeof() 函数以确保它们既是数字又是双精度。

有人知道为什么 group_by 和 summarise 会这样吗?

【问题讨论】:

  • 不要在group_bysummarise 中使用列号,而是使用它们的名称。像这样df_house %&gt;% dplyr::group_by(house_id) %&gt;% dplyr::summarise(Avg_school = mean(school, na.rm = TRUE))
  • 谢谢,这确实是我做错了。

标签: r dplyr group-by summarize


【解决方案1】:

@Ronak Shah 提供了正确答案。 确实是使用列号而不是名称使其无法正常工作。

【讨论】:

    猜你喜欢
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 2013-03-16
    • 2021-09-18
    相关资源
    最近更新 更多