使用R来区分“先生”和“太太”先生

时间:2013-06-14 15:06:07

标签: r gsub

我正在使用grep将“Mr”和“Mrs”替换为“Mr.”和“太太”,但每当我进入

  

gsub(“先生”,“先生”,数据$标题)

它也导致所有“太太”变成“先生”,这不是我正在寻找的:P

  

gsub(“Mr \ s”,“Mr.”数据$ Title)

也不起作用,因为R(我认为)在先生

之后不认识那个空间

提前感谢您的帮助!

4 个答案:

答案 0 :(得分:7)

gsub("(Mrs?)", "\\1.", c("Mr Smith", "Mrs Smith"))
#[1] "Mr. Smith"  "Mrs. Smith"

答案 1 :(得分:3)

> gsub("Mr([^s])", "Mr.\\1", c("Mr fdfvgg", "Mrs FLkm"))
[1] "Mr. fdfvgg" "Mrs FLkm"

答案 2 :(得分:0)

我认为eddi的答案更好,但是这里有另一种方法可以让“先生”没有得到“太太”:

gsub("Mr\\b", "Mr.", c("Mr", "Mrs"))

[1] "Mr." "Mrs"

\\b表示单词边界。

答案 3 :(得分:-2)

**您可以直接在R上运行循环 通过检查数据长度$ Title


如果长度== 2 =>数据$标题[1] - ; - “先生”。 其他数据$ Title [i]< - “Mrs。”**