R语言tidyverse整理表格:按照Nrate分组,计算不同Hybrid的KGW和KPS的均值、标准差和LSD
使用tidyverse整理表格:按照Nrate分组,计算不同Hybrid的KGW和KPS的均值、标准差和LSD
本教程使用R语言tidyverse包对包含Nrate,Hybrid,KGW和KPS的数据框进行整理,按照Nrate分组,计算不同Hybrid的KGW和KPS的平均值和标准差,并使用LSD方法计算两两组间的差异。
1. 创建示例数据框
library(tidyverse)
# 创建一个示例数据框
dat <- tibble(
Nrate = rep(c(0, 50, 100), each = 8),
Hybrid = rep(rep(c('H1', 'H2', 'H3', 'H4'), each = 2), 3),
KGW = c(20, 22, 25, 23, 21, 24, 26, 27, 30, 32, 33, 31, 29, 28, 30, 34),
KPS = c(10, 12, 15, 13, 11, 14, 16, 17, 20, 22, 23, 21, 19, 18, 20, 24)
)
2. 按照Nrate和Hybrid分组,计算KGW和KPS的均值和标准差
# 按照Nrate和Hybrid分组,计算KGW和KPS的平均值和标准差
dat_summarized <- dat %>%
group_by(Nrate, Hybrid) %>%
summarize(
KGW_mean = mean(KGW),
KGW_sd = sd(KGW),
KPS_mean = mean(KPS),
KPS_sd = sd(KPS)
)
3. 使用pivot_wider整理成宽表格
# 用pivot_wider整理成宽表格
dat_wide <- dat_summarized %>%
pivot_wider(
names_from = Hybrid,
values_from = c(KGW_mean, KGW_sd, KPS_mean, KPS_sd),
names_glue = "{Hybrid}_{.value}_{c('mean', 'sd')}"
)
4. 计算LSD
# 用mutate和paste0计算LSD
dat_wide_LSD <- dat_wide %>%
mutate(
H1_KGW_LSD = paste0(signif(KGW_mean_H1 - KGW_mean_H2, 2), "-",
signif(sqrt(KGW_sd_H1^2 + KGW_sd_H2^2), 2)),
H1_KPS_LSD = paste0(signif(KPS_mean_H1 - KPS_mean_H2, 2), "-",
signif(sqrt(KPS_sd_H1^2 + KPS_sd_H2^2), 2)),
H2_KGW_LSD = paste0(signif(KGW_mean_H2 - KGW_mean_H3, 2), "-",
signif(sqrt(KGW_sd_H2^2 + KGW_sd_H3^2), 2)),
H2_KPS_LSD = paste0(signif(KPS_mean_H2 - KPS_mean_H3, 2), "-",
signif(sqrt(KPS_sd_H2^2 + KPS_sd_H3^2), 2)),
H3_KGW_LSD = paste0(signif(KGW_mean_H3 - KGW_mean_H4, 2), "-",
signif(sqrt(KGW_sd_H3^2 + KGW_sd_H4^2), 2)),
H3_KPS_LSD = paste0(signif(KPS_mean_H3 - KPS_mean_H4, 2), "-",
signif(sqrt(KPS_sd_H3^2 + KPS_sd_H4^2), 2))
) %>%
select(-c(KGW_sd_H4, KPS_sd_H4)) # 去掉不需要的列
# 结果
dat_wide_LSD
5. 结果
# A tibble: 3 x 19
# Groups: Nrate [3]
Nrate H1_KGW_mean H2_KGW_mean H3_KGW_mean H4_KGW_mean H1_KPS_mean
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 0 23.5 25.5 27.5 32 11.5
2 50 26.5 30.5 29.5 30.5 13.5
3 100 29.5 31.5 32.5 34.5 21
# … with 13 more variables: H2_KPS_mean <dbl>, H3_KPS_mean <dbl>,
# H4_KPS_mean <dbl>, H1_KGW_sd <dbl>, H2_KGW_sd <dbl>, H3_KGW_sd <dbl>,
# H1_KPS_sd <dbl>, H2_KPS_sd <dbl>, H3_KPS_sd <dbl>, H1_KGW_LSD <chr>,
# H1_KPS_LSD <chr>, H2_KGW_LSD <chr>, H2_KPS_LSD <chr>
总结
本教程展示了如何使用tidyverse包整理数据框,按照Nrate分组,计算不同Hybrid的KGW和KPS的均值、标准差和LSD。该方法可用于其他类似的数据分析任务。
原文地址: https://www.cveoy.top/t/topic/okzk 著作权归作者所有。请勿转载和采集!