我有一个名为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