【发布时间】:2022-01-14 01:07:01
【问题描述】:
我有 12 个样本名称,由一个长字符串组成,但大多数样本名称的长度不同,并且都有不同的样本标识符(例如,一些被标记为 JKT-n,一些被标记为 sample_n 或 Sample_n)。我只想提取字符串中间的样本标识符部分,标记为“JKT-n”、“Sample_n”或“sample_n”。由于标识符不一致,我遇到了困难。以下是其中 3 个的示例:
data$sample
[1] "Monocytes DF 2_E18_016e_20180411_JKT-6_01_normalized_Ungated_viSNE_FlowSOM.fcs"
[2] "Monocytes DHF 2_E19_014b_20190731_sample_32_01_normalized_Ungated_viSNE_FlowSOM.fcs"
[3] "Monocytes DF 2_E19_014b_20190730_Sample_21_01_normalized_Ungated_viSNE_FlowSOM.fcs"
这是我用来拆分字符串的方法,最终得到了我想要的。但是,我想知道是否有更简洁的方法可以做到这一点,因为它有点笨重。
data <- as.data.frame(clean_names(read_excel("Significant Citrus clusters.xlsx", )))
data$tmp <- substr(data$sample,34,nchar(data$sample)-40)
data$tmp2 <- gsub(pattern = c("Sample_"), replacement = "JKT-", x=data$tmp)
data$tmp3 <- gsub(pattern=c("_sample_"), replacement="JKT-", x=data$tmp2)
data$tmp4 <- gsub(pattern="_", replacement="", x=data$tmp3)
data$CohortID <- data$tmp4
data$CohortID
[1] "JKT-6" "JKT-8" "JKT-12" "JKT-21" "JKT-26" "JKT-27" "JKT-4" "JKT-9" "JKT-22" "JKT-30" "JKT-32" "JKT-33"
谢谢
【问题讨论】: