R语言中如何实现数据框指定列转置为宽表格式
实现方案
你需要的是长表转宽表的操作,R中有两类常用实现方式:
方法1:使用tidyverse生态的pivot_wider(推荐,代码最简洁)
如果未安装相关依赖先执行安装:
install.packages("tidyverse")
转换代码:
library(tidyverse) df_out <- df_in %>% pivot_wider( id_cols = c(GENE, ID), names_from = trans, values_from = score )
执行后直接得到符合要求的宽表结果。
方法2:使用基础R内置reshape函数(无需安装额外包)
df_out <- reshape( df_in, idvar = c("GENE", "ID"), timevar = "trans", v.names = "score", direction = "wide" ) # 去掉基础R默认添加的列名前缀 colnames(df_out) <- sub("^score\\.", "", colnames(df_out))
注:你给出的示例输出中ENS999对应的ID值
11220为笔误,实际运行代码会保留原始数据的1122O取值。
内容的提问来源于stack exchange,提问作者Maya_Cent
相关产品推荐
相关产品推荐

