查找并 return 多个独立的字符串
Find and return multiple independent strings
我有一个 table 在同一列中有几个不同的字符串。我希望能够搜索该列并找到不同的字符串,然后 return 每个不同字符串的不同结果。例如,如果我有以下列数据:
Seq_ID Column2
1. RNA-ATI_1
2. RNA-ATI_2
3. DNA-FU_1
4. FU-DNA_2
5. DNA-TP1_1
6. RNA-TP1_2
7. RNA-BL_1
8. BL-RNA_2
我想搜索字符串 "ATI" and return "ATI" 并搜索 "FU" and return "FU" and "TP1" 和 return "TP1" 这样我就可以用单独的 column2
中的字符串构建一个新的 table。
我可以使用 grepl
为单个值执行此操作,但我不知道如何为多个输出执行此操作。一些警告是数据并不总是以相同的顺序或由
相同的符号。
y <- ifelse(grepl("*ATI", tab$Sequence_ID), "Analytical treatment interruption", " ")
这似乎只适用于一个,但我不知道如何扩展它以适用于多个。
最后我想:
Seq_ID Column2
1. RNA-ATI_1 ATI
2. RNA-ATI_2 ATI
3. DNA-FU_1 FU
4. FU-DNA_2 FU
5. DNA-TP1_1 TP1
6. RNA-TP1_2 TP1
7. RNA-BL_1 BL
8. BL-RNA_2 BL
您可以为 regexpr
调用指定多个模式,假设它们都是不同的字符串。例如:
regmatches(dat$Column2, regexpr("ATI|FU|TP1|BL", dat$Column2))
#[1] "ATI" "ATI" "FU" "FU" "TP1" "TP1" "BL" "BL"
这也可以在 stringi
stringr
等包中使用它们的 str_extract
和 stri_extract
函数进行类比 - 请参阅上面的@mnel 和他的回答。
你可以使用 stringr::str_extract_all
y <- stringr::string_extract_all(dat$Column2,"ATI|FU|TP1|BL")
我有一个 table 在同一列中有几个不同的字符串。我希望能够搜索该列并找到不同的字符串,然后 return 每个不同字符串的不同结果。例如,如果我有以下列数据:
Seq_ID Column2
1. RNA-ATI_1
2. RNA-ATI_2
3. DNA-FU_1
4. FU-DNA_2
5. DNA-TP1_1
6. RNA-TP1_2
7. RNA-BL_1
8. BL-RNA_2
我想搜索字符串 "ATI" and return "ATI" 并搜索 "FU" and return "FU" and "TP1" 和 return "TP1" 这样我就可以用单独的 column2
中的字符串构建一个新的 table。
我可以使用 grepl
为单个值执行此操作,但我不知道如何为多个输出执行此操作。一些警告是数据并不总是以相同的顺序或由
相同的符号。
y <- ifelse(grepl("*ATI", tab$Sequence_ID), "Analytical treatment interruption", " ")
这似乎只适用于一个,但我不知道如何扩展它以适用于多个。
最后我想:
Seq_ID Column2
1. RNA-ATI_1 ATI
2. RNA-ATI_2 ATI
3. DNA-FU_1 FU
4. FU-DNA_2 FU
5. DNA-TP1_1 TP1
6. RNA-TP1_2 TP1
7. RNA-BL_1 BL
8. BL-RNA_2 BL
您可以为 regexpr
调用指定多个模式,假设它们都是不同的字符串。例如:
regmatches(dat$Column2, regexpr("ATI|FU|TP1|BL", dat$Column2))
#[1] "ATI" "ATI" "FU" "FU" "TP1" "TP1" "BL" "BL"
这也可以在 stringi
stringr
等包中使用它们的 str_extract
和 stri_extract
函数进行类比 - 请参阅上面的@mnel 和他的回答。
你可以使用 stringr::str_extract_all
y <- stringr::string_extract_all(dat$Column2,"ATI|FU|TP1|BL")