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

在R中合并GMT文件第三列起的可变数量列为逗号分隔格式

处理GMT数据合并可变列基因的R方案

基础R实现

先读取GMT文件(注意加fill=TRUE自动补全空列的NA),然后逐行合并第三列及以后的基因列,忽略空值:

# 读取GMT数据,header设为FALSE因为GMT没有表头,fill=TRUE处理行长度不一的情况
gmt_data <- read.delim("你的文件路径.gmt", header = FALSE, sep = "\t", fill = TRUE)

# 动态选取第三列到最后一列,逐行合并为逗号分隔的字符串,自动忽略NA
gmt_data$合并基因列 <- apply(gmt_data[, 3:ncol(gmt_data)], 1, function(row) {
  paste(na.omit(row), collapse = ",")
})

# 保留前两列(通路名、来源链接)和新的合并列
最终结果 <- gmt_data[, c(1, 2, "合并基因列")]

tidyverse实现

如果习惯用tidyverse工具链,可以通过宽表转长表再分组合并的方式处理:

library(tidyverse)

# 读取GMT数据
gmt_data <- read_delim("你的文件路径.gmt", delim = "\t", col_names = FALSE, show_col_types = FALSE)

# 把第三列及以后的所有列转成单行基因,过滤空值后分组合并
最终结果 <- gmt_data %>%
  pivot_longer(cols = starts_with("X3"):last_col(), names_to = NULL, values_to = "基因") %>%
  filter(!is.na(基因)) %>%
  group_by(X1, X2) %>%
  summarise(合并基因列 = str_c(基因, collapse = ","), .groups = "drop")

两种方法都能适配每行基因列数不固定的情况,处理后就能得到你想要的三列结构:通路名称、来源链接、逗号分隔的基因列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:05:31