r - 括号内的 gsub 和填充

标签 r

我有这样的向量:

x <- c("20(0.23)", "15(0.2)", "16(0.09)")

我不想弄乱括号外面的数字,但想删除里面数字的前导零,并使所有内容都有 2 位数字。输出将如下所示:
"20(.23)", "15(.20)", "16(.09)"

有用信息:

我可以使用以下函数删除前导零并保留 2 位数字:LINK
numformat <- function(val) { sub("^(-?)0.", "\\1.", sprintf("%.2f", val)) }

numformat(c(0.2, 0.26))
#[1] ".20" ".26"

我知道 gsub可以用,但不知道怎么用。我会提供一个 strsplit回答,但这充其量是骇人听闻的。

最佳答案

gsubfn 包允许您使用应用于匹配的函数替换正则表达式匹配的任何内容。所以我们可以用你的 numformat功能

library(gsubfn)
# Note that I added as.numeric in because what will be passed in
# is a character string
numformat <- function(val){sub("^(-?)0.", "\\1.", sprintf("%.2f", as.numeric(val)))}
gsubfn("0\\.\\d+", numformat, x)
#[1] "20(.23)" "15(.20)" "16(.09)"

关于r - 括号内的 gsub 和填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12876820/

相关文章:

R:将 R 中的日期格式从当天的 01:00 更改为 24:00

r - 位置 = "dodge"或 "jitter"不适用于 geom_segments

r - 调整条形图ggplot2中的轴限制

r - 在 R 中将 SpatialPointsDataFrame 转换为 SpatialLinesDataFrame

r - 将 week.year 转换为year.month - R 中的日期

r - R6 类的 S4 调度行为不一致

r - 为什么 mutate() 和 add_column() 不接受相同的基本参数?

r - Shiny + DT : Single Cell Selection

R - Shiny - 如何在观察者中多次更新文本输出

r - 将 JSON 对象格式化为 R 中的数据帧