R、 在不影响其他值的情况下替换值中的字符
在R中,我有一个包含数字的字符向量,例如:R、 在不影响其他值的情况下替换值中的字符,r,regex,substitution,R,Regex,Substitution,在R中,我有一个包含数字的字符向量,例如: a <- c("1", "1.5", "-2", "3-4.5", "-1", "5-7.5", "3") a这里有一种方法: a <- c("1", "1.5", "-2", "3$4.5", "-1", "5$7.5", "3") gsub("([^-]+)(-)(.+)", "\\1$\\3", a) ## [1] "1" "1.5" "-2" "3$4.5" "-1" "5$7.5" "3"
a <- c("1", "1.5", "-2", "3-4.5", "-1", "5-7.5", "3")
a这里有一种方法:
a <- c("1", "1.5", "-2", "3$4.5", "-1", "5$7.5", "3")
gsub("([^-]+)(-)(.+)", "\\1$\\3", a)
## [1] "1" "1.5" "-2" "3$4.5" "-1" "5$7.5" "3"
a我们也可以使用regex lookarounds
sub('(?<=\\d)-(?=\\d)', '$', a, perl=TRUE)
#[1] "1" "1.5" "-2" "3$4.5" "-1" "5$7.5" "3"
sub(“(?可能类似于sub(“(\\d)-(\\d)”,“\\1$\\2”,a)
你是我的好朋友。尽管我必须修改第一个参数以接受实数而不是数字。
sub('(?<=\\d)-(?=\\d)', '$', a, perl=TRUE)
#[1] "1" "1.5" "-2" "3$4.5" "-1" "5$7.5" "3"