如何僅洗掉資料框列中的“.00”:這樣5.00% /GP per tonne就變成了5% / GP per tonne ?我正在嘗試類似下面的內容,但它說的是無效的正則運算式。
sched$duty_rate <- c("5.00% /GP per tonne","10.00% /GP per tonne")
for(i in 1:nrow(sched)){
sched$duty_rate[i] <- gsub("[.]?[0-9]*(?=%)","\\%",sched$duty_rate[i])
}
uj5u.com熱心網友回復:
你可以使用sub,即
sub('.00', '', sched$duty_rate, fixed = TRUE)
[1] "5% /GP per tonne" "10% /GP per tonne"
uj5u.com熱心網友回復:
您可以使用
sched$duty_rate <- gsub("\\.0 (%)", "\\1", sched$duty_rate)
詳情:
\.- 一個字面點0- 一個或多個0字符(%)- 第 1 組:一個%字符(這樣我們就不會從其他背景關系中洗掉零,只在.and之間%)
請參閱R 演示:
duty_rate <- c("5.00% /GP per tonne","10.00% /GP per tonne", "5.0% /GP per 2.000 tonne","10.0000% /GP per 20.000 tonne")
gsub("\\.0 (%)", "\\1", duty_rate)
## => [1] "5% /GP per tonne" "10% /GP per tonne"
## [3] "5% /GP per 2.000 tonne" "10% /GP per 20.000 tonne"
請參閱正則運算式演示。
uj5u.com熱心網友回復:
此外,可以使用通過包str_remove提供的功能派生相當簡單和可讀的實作。stringr
x <- c("5.00% /GP per tonne", "10.00% /GP per tonne")
stringr::str_remove(string = x, pattern = ".00")
#> [1] "5% /GP per tonne" "10% /GP per tonne"
由reprex 包創建于 2022-04-06 (v2.0.1)
uj5u.com熱心網友回復:
您的模式[.]?[0-9]*(?=%)匹配一??個可選的點、可選的數字并%在右側斷言匹配多個強制點且僅匹配零。
perl=TRUE您可以使用更具體的模式來匹配一個點和一個或多個零,從而使積極的前瞻作業[.]0 (?=%)
duty_rate <- c("5.00% /GP per tonne","10.00% /GP per tonne", "5.0% /GP per 2.000 tonne","10.0000% /GP per 20.000 tonne")
gsub("[.]0 (?=%)", "", duty_rate, perl=TRUE)
輸出
[1] "5% /GP per tonne" "10% /GP per tonne"
[3] "5% /GP per 2.000 tonne" "10% /GP per 20.000 tonne"
查看R 演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/457103.html
上一篇:如何使用RegEx突出顯示括號[]和如果它包含特定單詞或符號中的文本?
下一篇:雪花正則運算式
