簡體   English   中英

如何僅用點替換數字之間的空格

[英]How to replace only the spaces between numbers with dots

我有一個因子變量,有幾個級別表示人的財富。 不幸的是,數字中的數千個用空格表示:

> levels(bron$vermogen)
 [1] "negatief"                   "0 tot 5 000 euro"           "5 000 tot 10 000 euro"     
 [4] "10 000 tot 20 000 euro"     "20 000 tot 50 000 euro"     "50 000 tot 100 000 euro"   
 [7] "100 000 tot 200 000 euro"   "200 000 tot 500 000 euro"   "500 000 tot 1 miljoen euro"
[10] "1 miljoen euro en meer"    

我想用點替換這些空格,同時保持數字和單詞之間的空格。 我可以這樣做,例如:

bron$vermogen <- gsub("5 000 tot 10 000 euro", "5.000 tot 10.000 euro", bron$vermogen)

通過使用這種方法,我必須重復此過程8次。 我怎樣才能更有效地做到這一點?

一個dput的水平:

c("negatief", "0 tot 5 000 euro", "5 000 tot 10 000 euro", "10 000 tot 20 000 euro", "20 000 tot 50 000 euro", "50 000 tot 100 000 euro", "100 000 tot 200 000 euro", "200 000 tot 500 000 euro", "500 000 tot 1 miljoen euro", "1 miljoen euro en meer")

例如 :

gsub('([0-9]) ([0-9])','\\1.\\2',bron$vermogen)

 [1] "negatief"                   "0 tot 5.000 euro"           "5.000 tot 10.000 euro"     
 [4] "10.000 tot 20.000 euro"     "20.000 tot 50.000 euro"     "50.000 tot 100.000 euro"   
 [7] "100.000 tot 200.000 euro"   "200.000 tot 500.000 euro"   "500.000 tot 1 miljoen euro"
[10] "1 miljoen euro en meer"   

您可以用點替換空格:

gsub("\\d\\K (?=\\d)", ".", bron$vermogen, perl = TRUE)

 # [1] "negatief"                   "0 tot 5.000 euro"          
 # [3] "5.000 tot 10.000 euro"      "10.000 tot 20.000 euro"   
 # [5] "20.000 tot 50.000 euro"     "50.000 tot 100.000 euro"  
 # [7] "100.000 tot 200.000 euro"   "200.000 tot 500.000 euro" 
 # [9] "500.000 tot 1 miljoen euro" "1 miljoen euro en meer"

另一個類似的選擇是使用lookahead / behind

gsub("(?<=\\d)\\s(?=\\d)", ".", bron$vermogen, perl = TRUE)
# [1] "negatief"                   "0 tot 5.000 euro"           "5.000 tot 10.000 euro"      "10.000 tot 20.000 euro"    
# [5] "20.000 tot 50.000 euro"     "50.000 tot 100.000 euro"    "100.000 tot 200.000 euro"   "200.000 tot 500.000 euro"  
# [9] "500.000 tot 1 miljoen euro" "1 miljoen euro en meer"    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM