我想使用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
感谢。
答案 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"