使用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。该方法可用于其他类似的数据分析任务。

R语言tidyverse整理表格:按照Nrate分组,计算不同Hybrid的KGW和KPS的均值、标准差和LSD

原文地址: https://www.cveoy.top/t/topic/okzk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录