使用sub()替换R中的整个字段

时间:2015-03-20 16:14:26

标签: regex r

我想使用sub()函数替换R数据框中的字段。 (如果我应该使用不同的功能,请告诉我。)

我遇到的问题是sub()函数只替换匹配的正则表达式,这完全有意义。但是,如何更改sub()函数以替换整个字段?

这是repro:

Brow = c("Mozilla/5.0 xxxx", "Mozilla Firefox")
ver = c("1", "2")
test3 = data.frame(Brow, ver)
test3
#                Brow   ver
# 1  Mozilla/5.0 xxxx    1
# 2  Mozilla Firefox     2
## this is my sub() function
test3$Brow = sub("Mozilla\\/5\\.0", "Internet Explorer", test3$Brow)
# output
test3
#                     Brow   ver
# 1  Internet Explorer xxxx   1
# 2         Mozilla Firefox   2

我想要的输出:

               Brow  ver
1  Internet Explorer  1
2  Mozilla Firefox    2

感谢。

1 个答案:

答案 0 :(得分:1)

尝试

sub('Mozilla(?=[/][0-9]).*', 'Internet Explorer', test3$Brow, perl=TRUE)
#[1] "Internet Explorer" "Mozilla Firefox"  

或者只是

sub('Mozilla[/][0-9].*', 'Internet Explorer', test3$Brow)
#[1] "Internet Explorer" "Mozilla Firefox"