R:如何拆分字符串并保留部分字符串?
我有很多字符串,如下所示R:如何拆分字符串并保留部分字符串?,r,split,R,Split,我有很多字符串,如下所示 > x=c("cat_1_2_3", "dog_2_6_3", "cow_2_8_6") > x [1] "cat_1_2_3" "dog_2_6_3" "cow_2_8_6" 我想分离字符串,同时仍然持有它的第一部分,如下所示 "cat_1" "cat_2" "cat_3" "dog_2" "dog_6" "dog_3" "cow_2" "cow_8" "cow_6" 有什么建议吗 我们可以使用sub scan(text=sub("([a-z]+)_(
> x=c("cat_1_2_3", "dog_2_6_3", "cow_2_8_6")
> x
[1] "cat_1_2_3" "dog_2_6_3" "cow_2_8_6"
我想分离字符串,同时仍然持有它的第一部分,如下所示
"cat_1" "cat_2" "cat_3" "dog_2" "dog_6" "dog_3" "cow_2" "cow_8" "cow_6"
有什么建议吗 我们可以使用
sub
scan(text=sub("([a-z]+)_(\\d+)_(\\d+)_(\\d+)", "\\1_\\2,\\1_\\3,\\1_\\4",
x), what ='', sep=",", quiet = TRUE)
#[1] "cat_1" "cat_2" "cat_3" "dog_2" "dog_6" "dog_3" "cow_2" "cow_8" "cow_6"
或者另一个选项是使用
unlist(lapply(strsplit(x, "_"), function(x) paste(x[1], x[-1], sep="_")))
您可以尝试拆分字符串,然后使用
paste
重新组合
f <- function(x) {
res <- strsplit(x,'_')[[1]]
paste(res[1], res[2:4], sep='_')
}
x <- c("cat_1_2_3", "dog_2_6_3", "cow_2_8_6")
unlist(lapply(x, f))
f