R:用子字符串替换数据框的行名[2]

标签 r dataframe gsub galaxy

我有一个关于 gsub 使用的问题。我的数据的行名称具有相同的部分名称。见下文:

> rownames(test)
[1] "U2OS.EV.2.7.9"   "U2OS.PIM.2.7.9"  "U2OS.WDR.2.7.9"  "U2OS.MYC.2.7.9"
[5] "U2OS.OBX.2.7.9"  "U2OS.EV.18.6.9"  "U2O2.PIM.18.6.9" "U2OS.WDR.18.6.9"
[9] "U2OS.MYC.18.6.9" "U2OS.OBX.18.6.9" "X1.U2OS...OBX"   "X2.U2OS...MYC"
[13] "X3.U2OS...WDR82" "X4.U2OS...PIM"   "X5.U2OS...EV"    "exp1.U2OS.EV"
[17] "exp1.U2OS.MYC"   "EXP1.U20S..PIM1" "EXP1.U2OS.WDR82" "EXP1.U20S.OBX"
[21] "EXP2.U2OS.EV"    "EXP2.U2OS.MYC"   "EXP2.U2OS.PIM1"  "EXP2.U2OS.WDR82"
[25] "EXP2.U2OS.OBX"

在我之前的问题中,我问是否有办法为相同的部分名称获取相同的名称。看这个问题:Replacing rownames of data frame by a sub-string

答案是一个非常好的解决方案。函数gsub的使用方式如下:

 transfecties = gsub(".*(MYC|EV|PIM|WDR|OBX).*", "\\1", rownames(test)

现在,我遇到了另一个问题,我用 R 运行的程序( Galaxy )无法识别 |人物。我的问题是,是否有另一种方法可以在不使用此 | 的情况下获得相同的解决方案?

谢谢!

最佳答案

如果您不想使用“|”性格,你可以尝试这样的事情:

Rnames <-
c( "U2OS.EV.2.7.9",   "U2OS.PIM.2.7.9",  "U2OS.WDR.2.7.9",  "U2OS.MYC.2.7.9" ,
 "U2OS.OBX.2.7.9" , "U2OS.EV.18.6.9"  ,"U2O2.PIM.18.6.9" ,"U2OS.WDR.18.6.9"  )

Rlevels <- c("MYC","EV","PIM","WDR","OBX")    
tmp <- sapply(Rlevels,grepl,Rnames)
apply(tmp,1,function(i)colnames(tmp)[i])
[1] "EV"  "PIM" "WDR" "MYC" "OBX" "EV"  "PIM" "WDR"

但我会认真考虑向 Galaxy 团队提及这一点,因为不能使用 OR 符号似乎相当尴尬......

关于R:用子字符串替换数据框的行名[2],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6291325/

相关文章:

C 或 fortran 库无法在 R 中加载

r - r : issues with displaying rotated labels using text() 中的条形图标签

r - 如果最后/第一个字符不是字母/数字,如何删除它们?

ruby - 如何使用 Ruby 从包含撇号的字符串创建文件夹?

regex - R - 使用正则表达式,在字符串中的第 n 个点之前设置位置并删除后面的内容

python - Pandas /matplotlib : faceting bar plots

R levelplot colorkey标签和颜色范围

python - 为什么从数据框中检索单行作为字典而不是系列?

Python:如何将数据框中的 3 列作为函数中的 3 个单独参数传递并遍历列值

python - 当值为0时如何在轴上显示条形类别