长、宽数据的相互转换-tidyr包

记录一下长宽数据的转换

宽数据根据分组转换为长数据

library(openxlsx)
library(tidyr)

dat_wide = read.xlsx("C:/Users/law/Desktop/长宽数据转换.xlsx", sheet = 2)
dat_groups <- read.xlsx("C:/Users/law/Desktop/长宽数据转换.xlsx", sheet = 3)

# 将宽格式数据转换为长格式数据
dat_long <- dat_wide %>%
    pivot_longer(
        cols = -Group, # 排除Group列,将其他所有列转换为长格式
        names_to = "SampleID", # 新的列名变量
        values_to = "pod", # 新的值变量
        names_prefix = "" # 移除列名前的前缀
    )

# 将分组信息与长格式数据合并
dat_long <- dat_long %>%
    left_join(dat_groups, by = c("SampleID"))

宽数据格式:
分组的格式:

示例数据下载:
https://www.123865.com/s/g5qnjv-wHiaH

本文最后更新于2025-01-2如有失效,请留言
THE END