![](/img/trans.png)
[英]Summary statistics of numerical and 2 factor variables (what would these commands in SAS be in R?)
[英]R: Calculating matrix summary statistics by factor dplyr
计算具有因子的矩阵的汇总统计量的最佳方法是什么(使用R)?
样本数据:
df <- read.table(text="
Gender Obs1 Obs2 Obs3
1 F 0.0 -1.25 -1.23
2 M -0.5 0.83 -0.25
3 UNK 1.0 1.22 0.24
4 F 1.0 0.25 0.76
5 F 0.5 1.02 0.0
6 M 2.0 -0.05 0.66
7 M 1.0 5.80 NA
8 M 1.0 NA 1.0
9 UNK 0.0 NA 2.2", header=T)
df <- as.data.frame(df)
预期产量:
Gender | Obs1_count | Obs2_count | Obs3_count | Obs1_mean | Obs2_mean | Obs3_mean
---------------------------------------------------------------------------------
F 3 3 3 0.5 0.00667 -0.157
M 4 3 3 0.875 2.0433 0.47
UNK 2 1 2 0.5 1.22 1.22
我试过的
library(dplyr)
summaryStats <- df %>% group_by(Gender) %>% na.omit() %>%
summarise_all(.funs = funs(
count = length(.),
mean = mean(.)))
我们可以在逻辑向量上使用sum
来获取非NA元素的“计数”, mean
还具有参数na.rm = TRUE
来删除那些NA元素。 因此,我们不需要na.omit()
。 虽然,它确实删除了NA
元素,但只要该行上只有一个NA
,它也会删除NA
行。 实际上,某些列的“计数”减少,并且“均值”也会根据删除具有非NA值的行而变化
df %>%
group_by(Gender) %>%
summarise_all(.funs = funs(count = sum(!is.na(.)),
mean = mean(., na.rm = TRUE)))
# A tibble: 3 x 7
# Gender Obs1_count Obs2_count Obs3_count Obs1_mean Obs2_mean Obs3_mean
# <fct> <int> <int> <int> <dbl> <dbl> <dbl>
#1 F 3 3 3 0.5 0.00667 -0.157
#2 M 4 3 3 0.875 2.19 0.47
#3 UNK 2 1 2 0.5 1.22 1.22
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.