3

我正在使用 grep 将“先生”和“夫人”替换为“先生”。和“夫人”,但每当我进入

gsub("先生", "先生", data$Title)

它还会导致所有“夫人”变成“夫人”,这不是我要找的:P

gsub("Mr\s", "Mr." data$Title)

也不起作用,因为 R(我认为)在 Mr 之后不承认那个空间。

提前感谢您的帮助!

4

4 回答 4

7
gsub("(Mrs?)", "\\1.", c("Mr Smith", "Mrs Smith"))
#[1] "Mr. Smith"  "Mrs. Smith"
于 2013-06-14T15:23:23.037 回答
3
> gsub("Mr([^s])", "Mr.\\1", c("Mr fdfvgg", "Mrs FLkm"))
[1] "Mr. fdfvgg" "Mrs FLkm"
于 2013-06-14T15:12:44.360 回答
0

我认为 eddi 的答案更好,但这是获得“先生”而不获得“夫人”的另一种方法:

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

[1] "Mr." "Mrs"

\\b表示单词边界。

于 2013-06-14T15:35:02.783 回答
-2

**您可以通过检查 data$Title 的长度直接在 R 上运行一个循环


如果长度==2 => data$Title[i]<-"Mr." 否则数据$Title[i]<-“夫人”**

于 2013-06-14T15:39:51.400 回答