【发布时间】:2020-09-24 13:37:25
【问题描述】:
我有一个如下的 R 数据框-
df <- data.frame(
FDR = c (0.009, 0.007, 0.007),
Probe_ID = c("1555272_at", "1557203_at", "1557384_at"),
Gene.Symbol = c("RSPH10B2///RSPH10B","PABPC1L2B///PABPC1L2A","LOC100506639///ZNF131"),
Gene.ID = c("728194///222967","645974///340529","100506639///7690"))
df
FDR Probe_ID Gene.Symbol Gene.ID
1 0.009 1555272_at RSPH10B2///RSPH10B 728194///222967
2 0.007 1557203_at PABPC1L2B///PABPC1L2A 645974///340529
3 0.007 1557384_at LOC100506639///ZNF131 100506639///7690
我想根据模式/// 的列df$Gene.symbol 的行值拆分数据框。结果数据框应如下所示 -
FDR Probe_ID Gene.symbol Gene.ID
0.009 15111_at RSPH10B2 728194
0.009 15111_at RSPH10B 222967
0.007 15222_at PABPC1L2B 645974
0.007 15222_at PABPC1L2A 340529
0.007 15333_at LOC100506639 100506639
0.007 15333_at ZNF131 7690
我已经尝试了以下代码,但它不起作用并生成了带有重复元素的列-
s <- strsplit(gsub("///","",df$Gene.symbol),", ",fixed = TRUE)
res <- data.frame(Id = rep(df$Gene.symbol, lengths(s)), result = unlist(s))
ans <- merge(annotated,res)
提前致谢!
【问题讨论】:
-
尝试
gsub("\\/\\/\\/","",df$Gene.Symbol)因为/是一个特殊字符,在R-console 中添加\` before any special character ingsuborregex. See?regex` 了解更多详情