如何重塑R语言data.frame:新增细胞系列与各基因列且保留其余内容
R语言data.frame重塑:转宽格式并保留细胞系等列
直接用tidyverse里的pivot_wider()就能搞定,步骤如下:
1. 准备数据(模拟你的原数据结构)
假设你的原数据是长格式,包含样本、类型、基因、表达量,先新增细胞系列(如果原数据已有细胞系列,这步可以跳过):
library(tidyverse) # 模拟原长格式数据 df <- tibble( Sample = rep(c("S1", "S2", "S3"), each = 2), Type = rep(c("Control", "Treat"), 3), Gene = rep(c("GeneA", "GeneB"), 3), Expression = c(1.2, 3.4, 2.1, 4.5, 0.9, 3.8) ) # 新增细胞系列(这里按样本映射,你可以根据实际规则调整) df <- df %>% mutate(`Cell Line` = case_when( Sample == "S1" ~ "CL1", Sample == "S2" ~ "CL2", Sample == "S3" ~ "CL3" ))
2. 执行重塑操作
把基因列转成单独的列,同时保留样本、类型、细胞系这些列:
df_wide <- df %>% pivot_wider( id_cols = c(Sample, Type, `Cell Line`), # 指定要保留的非基因列 names_from = Gene, # 用哪个列的内容做新列名 values_from = Expression # 新列对应的值来源 )
结果说明
执行后会得到宽格式数据:每行对应一个样本-细胞系-类型组合,每个基因单独成一列,数值为对应的表达量,完全保留了你需要的所有内容。
内容的提问来源于stack exchange,提问作者Diana
相关产品推荐
相关产品推荐

