我有一个包含5列rachis1到rachis5的数据集是数字的。 我有100行数据,每行都附有名称作为因子。 我想对所有五列的每一行做一个摘要。
head(rl)
name rachis1 rachis2 rachis3 rachis4 rachis5
1 R04-001 2.4 2.6 2.7 3.0 2.4
2 R04-002 7.0 7.4 7.7 6.8 7.4
3 R04-003 3.5 3.7 3.9 4.1 3.8
4 R04-004 9.5 9.1 7.8 8.8 8.2
5 R04-005 3.0 3.3 3.4 3.8 3.3
6 R04-006 9.2 9.8 9.5 9.4 10.1
我的代码是。
library(dplyr)
####Rachis
RL<- rl %>%
group_by(name) %>%
summarize(RL= mean(rachis1:rachis5), RLMAX = max(rachis1:rachis5),RLMIN =
min(rachis1:rachis5), RLSTD=sd(rachis1:rachis5),na.rm=T)
head(RL)
tail(RL)
我的结果分析结果为......
head(RL)
# A tibble: 6 x 6
name RL RLMAX RLMIN RLSTD na.rm
<fctr> <dbl> <dbl> <dbl> <dbl> <lgl>
1 R04-001 2.4 2.4 2.4 NA TRUE
2 R04-002 7.0 7.0 7.0 NA TRUE
3 R04-003 3.5 3.5 3.5 NA TRUE
4 R04-004 9.0 9.5 8.5 0.7071068 TRUE
5 R04-005 3.0 3.0 3.0 NA TRUE
6 R04-006 9.2 9.2 9.2 NA TRUE
我想知道为什么RLSTD中存在NA(标准偏差),而最小值和最大值不是行的混合和最大值。 是否有另一种收集描述性统计数据的方法?
答案 0 :(得分:0)
我无法判断100行中是否有重复的行名称。如果您这样做,并且因为您已经拥有此格式的数据并使用tidyverse
,那么这可能会有效。请注意,我已将na.rm
参数放在各个统计函数调用中。
RL<- rl %>%
group_by(name) %>%
summarise(RL = mean(rachis1+rachis2+rachis3+rachis4+rachis5, na.rm=T),
RLMAX = max(rachis1+rachis2+rachis3+rachis4+rachis5, na.rm=T),
RLMIN = min(rachis1+rachis2+rachis3+rachis4+rachis5, na.rm=T),
RLSTD = sd(rachis1+rachis2+rachis3+rachis4+rachis5, na.rm=T))
答案 1 :(得分:0)
以下是使用dplyr汇总代码的结果。现在效果很好。
name RL RLMAX RLMIN RLSTD
<fctr> <dbl> <dbl> <dbl> <dbl>
1 R04-001 2.62 3.0 2.4 0.2489980
2 R04-002 7.26 7.7 6.8 0.3577709
3 R04-003 3.80 4.1 3.5 0.2236068
4 R04-004 8.68 9.5 7.8 0.6833740
5 R04-005 3.36 3.8 3.0 0.2880972
6 R04-006 9.60 10.1 9.2 0.3535534