如何从列表中的字符串开头删除多个字符?
How do I remove multiple characters from the beginning of strings in a list?
假设我有以下字符串 -
some_list <- c("cs_m_string1", "m_string2", "string3_d", "string4_h")
我希望能够指定要从 some_list
中的字符串开头删除的字符列表。例如我想指定一个列表,例如remove_beg <- c("cs_m_", "m_")
,从列表中的字符串开头删除并得到这个结果-
"string1" "string2" "string3_d" "string4_h"
此外,在一个单独的操作中,我希望能够对字符串末尾的字符做同样的事情,所以指定一个列表,例如 remove_end <- c("_d", "_h")
,并得到这个结果 -
"cs_m_string1" "m_string2" "string3" "string4"
我可以使用 some_list %>% str_remove_all("^cs_m_")
一次删除 1 个字符,但我有一个很大的列表并且想指定一次删除多个字符。
一种选择是使用 paste0
将要删除的字符列表折叠成一个字符串,然后您可以直接将其放入 str_remove_all
.
library(stringr)
remove_list <- c("cs_m_", "m_")
paste_list <- paste0("^", remove_list, collapse = "|")
some_list %>%
str_remove_all(paste_list)
#[1] "string1" "string2" "string3_d" "string4_h"
假设我有以下字符串 -
some_list <- c("cs_m_string1", "m_string2", "string3_d", "string4_h")
我希望能够指定要从 some_list
中的字符串开头删除的字符列表。例如我想指定一个列表,例如remove_beg <- c("cs_m_", "m_")
,从列表中的字符串开头删除并得到这个结果-
"string1" "string2" "string3_d" "string4_h"
此外,在一个单独的操作中,我希望能够对字符串末尾的字符做同样的事情,所以指定一个列表,例如 remove_end <- c("_d", "_h")
,并得到这个结果 -
"cs_m_string1" "m_string2" "string3" "string4"
我可以使用 some_list %>% str_remove_all("^cs_m_")
一次删除 1 个字符,但我有一个很大的列表并且想指定一次删除多个字符。
一种选择是使用 paste0
将要删除的字符列表折叠成一个字符串,然后您可以直接将其放入 str_remove_all
.
library(stringr)
remove_list <- c("cs_m_", "m_")
paste_list <- paste0("^", remove_list, collapse = "|")
some_list %>%
str_remove_all(paste_list)
#[1] "string1" "string2" "string3_d" "string4_h"