2017-10-12 85 views
2

假设我有以下data.frame:变化最后两位数字为 “00”

dt=data.frame(id=LETTERS[1:5],code=c("101011,101102,101130","211011,101102", 
    "101011,301102,101132","201015,401102,103412","131011,101101,105430")) 

id     code 
A 101011,101102,101130 
B   211011,101102 
C 101011,301102,101132 
D 201015,401102,103412 
E 131011,101101,105430 
F   101100,103200` 

我希望代码的最后两个数字变成 “00”,就像这样:

id     code 
A 101000,101100,101100 
B   211000,101100 
C 101000,301100,101100 
D 201000,401100,103400 
E 131000,101100,105400 
F   101100,103200` 

我怎样才能做到这一点?

回答

3

使用gsub\\d{2}\\b;其中\\b匹配单词边界,\\d{2}\\b因此匹配字边界之前的两个数字;用gsub取代所有与00相符的配对:

dt$code <- gsub('\\d{2}\\b', '00', dt$code) 

dt 
# id     code 
#1 A 101000,101100,101100 
#2 B  211000,101100 
#3 C 101000,301100,101100 
#4 D 201000,401100,103400 
#5 E 131000,101100,105400 
相关问题