You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R入门:如何将字符列基因突变DataFrame转为整数列样本矩阵?

基因-样本突变矩阵转换方案

下面提供两种适合R新手的实现方法,都能完成你需要的格式转换:

方法一:用tidyverse工具包(推荐,代码逻辑更清晰)

如果还没装tidyverse,先安装加载:

# 仅首次运行需要安装
install.packages("tidyverse")
library(tidyverse)

通过管道流一步步处理:

dataframe2 <- dataframe1 %>%
  # 先去重:同一个基因在同一样本的多条突变记录只留一条
  distinct(`gene name`, sample, .keep_all = TRUE) %>%
  # 新增值列,标记存在突变的记录为1
  mutate(value = 1) %>%
  # 转换为宽表,样本名作为列,缺失的基因-样本组合填0
  pivot_wider(
    names_from = sample,
    values_from = value,
    values_fill = 0,
    id_cols = `gene name`
  ) %>%
  # 将基因名称设为行名
  column_to_rownames(var = "gene name")

方法二:基础R原生方法(无需额外安装包)

用基础R的table函数快速生成交叉表,再转成0-1矩阵:

# 生成基因与样本的交叉频数表
cross_tab <- table(dataframe1$`gene name`, dataframe1$sample)
# 把频数大于0的替换为1,其余为0,转成数据框
dataframe2 <- as.data.frame(ifelse(cross_tab > 0, 1, 0))

结果验证

运行后执行print(dataframe2),就能得到你想要的目标结构。

内容的提问来源于stack exchange,提问作者fatemeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:13:09