gpt4 book ai didi

r - 括号内的 gsub 和填充

转载 作者:行者123 更新时间:2023-12-04 17:02:19 25 4
gpt4 key购买 nike

我有这样的向量:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com