子串替换第n个位置R
我需要将6,7,8的位置替换为“u”。在子字符串中,我提到了开始和停止位置。它不起作用子串替换第n个位置R,r,R,我需要将6,7,8的位置替换为“u”。在子字符串中,我提到了开始和停止位置。它不起作用 > a=c("UHI786KJRH2V", "TYR324FHASJKDG","DHA927NFSYFN34") > substring(a, 6,8) <- "_" > a [1] "UHI78_KJRH2V" "TYR32_FHASJKDG" "DHA92_NFSYFN34" >a=c(“UHI786KJRH2V”、“TYR324FHASJKDG”、“DHA927NFSYFN
> a=c("UHI786KJRH2V", "TYR324FHASJKDG","DHA927NFSYFN34")
> substring(a, 6,8) <- "_"
> a
[1] "UHI78_KJRH2V" "TYR32_FHASJKDG" "DHA92_NFSYFN34"
>a=c(“UHI786KJRH2V”、“TYR324FHASJKDG”、“DHA927NFSYFN34”)
>子串(a,6,8)a
[1] “UHI78_KJRH2V”“TYR32_FHASJKDG”“DHA92_NFSYFN34”
我需要
UHI78\u RH2V TYR32\u ASJKDG DHA92\u SYFN34
使用sub
,我们可以匹配模式(?使用sub
,我们可以匹配文档中的模式(?):
如果要替换的部分比替换字符串长,则仅替换字符串长度的部分
所以我们可以这样做:
substring(a, 6,8) <- "_@@"
sub("@+", "", a)
[1] "UHI78_RH2V" "TYR32_ASJKDG" "DHA92_SYFN34"
文件中的子字符串(a,6,8):
如果要替换的部分比替换字符串长,则仅替换字符串长度的部分
所以我们可以这样做:
substring(a, 6,8) <- "_@@"
sub("@+", "", a)
[1] "UHI78_RH2V" "TYR32_ASJKDG" "DHA92_SYFN34"
substring(a,6,8)1)stru sub1)stru subcar可以避免nchar()
使用:paste0(substr(a,1,5),“8”,substring(a,9))
可以避免nchar()
使用:paste0(substr(a,1,5),“8”,substring(a,9))
substring(a, 6,8) <- "_@@"
sub("@+", "", a)
[1] "UHI78_RH2V" "TYR32_ASJKDG" "DHA92_SYFN34"
library(stringr)
str_sub(a, 6, 8) <- "_"
a
## [1] "UHI78_RH2V" "TYR32_ASJKDG" "DHA92_SYFN34"
sub("(.....)...(.*)", "\\1_\\2", a)
## [1] "UHI78_RH2V" "TYR32_ASJKDG" "DHA92_SYFN34"
library(dplyr)
library(tidyr)
DF <- data.frame(a)
DF %>%
separate(a, into = c("pre", "junk", "post"), sep = c(5, 8)) %>%
select(-junk) %>%
unite(a)
a
1 UHI78_RH2V
2 TYR32_ASJKDG
3 DHA92_SYFN34