如何将基因数据集转置为宽表?dplyr的group函数是否适用?
数据格式转换解决方案
你要做的是长格式转宽格式,用dplyr的group_by其实不对路,应该用tidyverse里的tidyr::pivot_wider函数,搭配dplyr一起用就行。
步骤示例:
- 先加载所需包:
library(tidyverse) # 包含dplyr和tidyr
- 构造示例数据集(如果已有现成数据框可跳过此步):
df <- tibble( Genes = c("myc", "myc", "myc", "erk", "erk", "erk"), Cell_Line = c("A1", "A2", "A3", "A1", "A2", "A3"), Value = c(233, 213, 541, 123, 245, 123) )
- 执行格式转换:
wide_df <- df %>% pivot_wider( id_cols = Cell_Line, # 指定作为行标识的列 names_from = Genes, # 指定要转为列名的字段 values_from = Value # 指定对应填充的数值列 )
- 查看转换结果:
print(wide_df) # 输出如下: # # A tibble: 3 × 3 # Cell_Line myc erk # <chr> <dbl> <dbl> # 1 A1 233 123 # 2 A2 213 245 # 3 A3 541 123
补充说明:group_by主要用于分组聚合计算,不是做数据格式重塑的工具,pivot_wider才是处理这类长转宽需求的标准方法。
内容的提问来源于stack exchange,提问作者Jawad Alaa Edeen
相关产品推荐
相关产品推荐

