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

如何在R语言中拆分dataframe的逗号分隔列并新增行

拆分DataFrame中逗号分隔的列并展开行

首先还原你提供的原始DataFrame:

df <- structure(list(tissue = c("thymus", "leg muscle", "liver", "stromal cell of bone marrow", 
"liver", "liver", "liver", "bone marrow", "skin", "balb/c"), 
    genotype = c("", "", "", "", "", "", "", "", "over-expressing PTN/OSF1,wild type genotype", 
    "")), row.names = c("S-4", "S-21", "S-25", "S-29", "S-47", "S-48", "S-49", "S-50", "S-61", "S-74"
), class = "data.frame")

要实现按逗号拆分genotype列、为每个拆分结果新增一行且保留对应tissue值的需求,用tidyr包的separate_rows()函数最便捷:

步骤1:准备依赖包

如果未安装过包含tidyr的tidyverse,先执行安装:

install.packages("tidyverse")

然后加载包:

library(tidyr)

步骤2:执行拆分操作

指定要拆分的列是genotype,分隔符为逗号,同时设置trim = TRUE自动去除拆分后字符串两端的空格:

df_split <- separate_rows(df, genotype, sep = ",", trim = TRUE)

处理后的核心结果

拆分后df_split的关键行如下:

#            tissue                        genotype
# S-4         thymus                                
# S-21   leg muscle                                
# ...
# S-61          skin over-expressing PTN/OSF1
# S-61.1        skin        wild type genotype
# S-74        balb/c                                

原S-61行的genotype被拆分为两行,对应的tissue值均保留为skin,其余空值行保持原样。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:02:19