我尝试使用gsub将(5,10]
,(20,20]
等值重新编码为5-10%
,20-20%
。因此,第一个括号应消失,逗号应改为破折号,而最后一个括号应为%。我只能做的是
x<-c("(5,10]","(20,20]")
gsub("\\,","-",x)
然后将逗号更改为破折号。我也该如何更改其他人?
谢谢。
答案 0 :(得分:4)
非常简单,一组gsub。
x <- c("(5,10]","(20,20]")
x <- gsub(",", "-", x) # remove comma
x <- gsub("\\(", "", x) # remove bracket
x <- gsub("]", "%", x) # replace ] by %
x
"5-10%" "20-20%"
答案 1 :(得分:3)
这是另一种选择:
> gsub("\\((\\d+),(\\d+)\\]", "\\1-\\2%", x)
[1] "5-10%" "20-20%"
答案 2 :(得分:1)
其他解决方案。
使用if %mm% == 00 set "mm=12" & set /a "yy-=1"
提取所有数字。然后,我们将每个第一个和第二个数字相结合。
regmatches
答案 3 :(得分:1)
有趣的是,丑陋的一线:
sapply(regmatches(x, gregexpr("\\d+", x)), function(x) paste0(x[1], "-", x[2], "%"))
[1] "5-10%" "20-20%"