【发布时间】:2022-02-15 19:01:49
【问题描述】:
我有不同样本类型标记的计数列。为了开始比较,我想对特定的样本组进行子集化。
为了做到这一点,我正在尝试这个
df2 <- df1[,!grepl("pH|B|M|C|G|L", colnames(df1))]
我的目标是保留以 H 和 TCGA
开头的样本当我运行上述行时,我知道该怎么做,它也会删除标记为 TCGA 的 comlumn,因为它包含 TCGA 中也存在的字母。
我尝试了另一种方式
df2 <- df1[,grepl("H|TCGA", colnames(df1))]
这里的问题是因为我有标记为 pH 值的样品也被选中。
如何解决。
任何帮助或建议都会很有帮助
names(df1)
[1] "H1" "H2" "H3" "H4" "B11" "B12" "B1" "B2" "B3"
[10] "B4" "B5" "B6" "B7" "B8" "B9" "C1" "C2" "C3"
[19] "C4" "G1" "G2" "G3" "G4" "L1" "L2" "L3" "L4"
[28] "L5" "L6" "L7" "L8" "M1" "M2" "M3" "M4" "pH10"
[37] "pH11" "pH12" "pH1" "pH2" "pH3" "pH4" "pH5" "pH6" "pH7"
[46] "pH8" "pH9" "TCGA-AB-2856" "TCGA-AB-2849" "TCGA-AB-2971"
【问题讨论】:
-
使用
^匹配字符串的开头,如df2 <- df1[,grepl("^H|^TCGA", colnames(df1))] -
我想我找到了我的解决方案 stackoverflow.com/questions/46153832/exact-match-with-grepl-r 但如果有更优雅的方法我会这样做