如何替換“。” 位于帶有“,”的數字內,但不能替換“。” 位于別處?
輸入資料:
x_input="23.344,) abcd, 12899.2, (, efg; abef. gfdc."
預期輸出:
x_output
"23,344,) abcd, 12899,2, (, efg; abef. gfdc."
我試過:
x_input<-"23.344,) abcd, 12899.2, (, efg; abef. gfdc."
x_output<-gsub(".", ",", x_input))))
但這不起作用。
提前致謝。
uj5u.com熱心網友回復:
用第一位數字、逗號和第二位數字替換數字、點和數字。
(交替使用模式
r"{(\d)\.(\d?)}"
如果在點之前有一個數字但在點之后沒有數字就足夠了。)
不使用任何包。
gsub(r"{(\d)\.(\d)}", r"{\1,\2}", x_input)
## [1] "23,344,) abcd, 12899,2, (, efg; abef. gfdc."
uj5u.com熱心網友回復:
一個可能的解決方案,基于stringr::str_replace_all:
library(tidyverse)
x_input="23.344,) abcd, 12899.2, (, efg; abef. gfdc."
x_input %>%
str_replace_all("(?<=\\d)\\.(?=\\d)", ",")
#> [1] "23,344,) abcd, 12899,2, (, efg; abef. gfdc."
或者,在 中base R,
gsub("(?<=\\d)\\.(?=\\d)", ",", x_input, perl = T)
#> [1] "23,344,) abcd, 12899,2, (, efg; abef. gfdc."
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/480386.html
上一篇:帶有回圈的彈性網路回歸模型沒有給我基于alphaR的結果串列
下一篇:R根據列值聚合資料框
