如何在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
相关产品推荐
相关产品推荐

