使用 grepl 过滤列以保持特定字符串匹配
Filter column using grepl to keep particular string match
我的计数列标有不同的样本类型。为了开始比较,我想对特定的样本组进行子集化。
为了做到这一点,我尝试了这个
df2 <- df1[,!grepl("pH|B|M|C|G|L", colnames(df1))]
我的objective是保留以H和TCGA
开头的样本
当我在 运行 上面的行中,它还删除了标记为 comlumn 的 TCGA,因为它包含也存在于 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))]
我们也可以将 dplyr 与 starts_with()
:
一起使用
library(dplyr)
df1 %>%
select(starts_with(c('H', 'TCGA'))
我的计数列标有不同的样本类型。为了开始比较,我想对特定的样本组进行子集化。
为了做到这一点,我尝试了这个
df2 <- df1[,!grepl("pH|B|M|C|G|L", colnames(df1))]
我的objective是保留以H和TCGA
开头的样本当我在 运行 上面的行中,它还删除了标记为 comlumn 的 TCGA,因为它包含也存在于 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))]
我们也可以将 dplyr 与 starts_with()
:
library(dplyr)
df1 %>%
select(starts_with(c('H', 'TCGA'))