R:使用dplyr group_by函数的汇总不分组

时间:2018-03-07 09:34:23

标签: r dplyr grouping

我有一个名为dt的简单数据集,带有一些序数缩放值和一个名为group的变量,其中包含三个组。我尝试通过这样做来计算一个变量dt[,24]的摘要统计数据。

library(dplyr)
dt %>% group_by(group) %>% 
  summarize(
    n = n(),
    mean=mean(dt[,24], na.rm = TRUE), 
    sum=sum(dt[,24], na.rm = TRUE),
    std = sd(dt[,24], na.rm = TRUE)
    )

不幸的是,每组的输出完全相同。

# A tibble: 4 x 5
  group     n  mean   sum   std
  <ord> <int> <dbl> <dbl> <dbl>
1 1       452  2.56  2266  1.13
2 2       308  2.56  2266  1.13
3 3        81  2.56  2266  1.13
4 NA       97  2.56  2266  1.13

当我尝试通过简单的for循环计算它时,结果确实不同。

for (index in c(1,2,3)){
  print(mean(dt[dt$group==index,24],na.rm = TRUE))
}

[1] 2.488599
[1] 2.259259
[1] 2.654867

似乎dplyr汇总函数仅计算全局均值。 出了什么问题?我按照此页面上的确切步骤操作:http://www.sthda.com/english/wiki/kruskal-wallis-test-in-r

0 个答案:

没有答案