Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
区别于;Mr";以及;陈方安生女士;使用R_R_Gsub - Fatal编程技术网

区别于;Mr";以及;陈方安生女士;使用R

区别于;Mr";以及;陈方安生女士;使用R,r,gsub,R,Gsub,我用grep将“Mr”和“Mrs”替换为“Mr”和“Mrs.”,但每当我进入 gsub(“先生”、“先生”,数据$Title) 它还导致所有的“Mrs”都变成了“Mr.s”,这并不是我想要的:p gsub(“Mr\s”、“Mr.”数据$Title) 也不起作用,因为R(我想)不认识Mr后面的空间 提前感谢您的帮助 我认为eddi的答案更好,但这里有一种替代方法,可以得到“Mr”而不是“Mrs”: > gsub("Mr([^s])", "Mr.\\1", c("Mr fdfvgg", "Mr

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

gsub(“先生”、“先生”,数据$Title)

它还导致所有的“Mrs”都变成了“Mr.s”,这并不是我想要的:p

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

也不起作用,因为R(我想)不认识Mr后面的空间


提前感谢您的帮助

我认为eddi的答案更好,但这里有一种替代方法,可以得到“Mr”而不是“Mrs”:

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

\\b
表示单词边界。

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



如果R中的length==2=>data$Title[i],则需要转义两次,一次转义R,一次转义正则表达式
gsub('Mr\\s','Mr',data$Title)
gsub('Mr','Mr',data$Title)
。它确实有效,但问题是我的“Mr”后面没有空格。它更像是Mrfdfvgg和MrsFLkm。
[^s]
表示匹配任何不是s的字符。这并不意味着一个空间@eddi答案是一个很好的解决方案,适用于标题后没有空格的情况(如OP所需)。-1没有格式化,没有解释你循环的内容,我很确定你的意思是
nchar
不是
length
gsub("(Mrs?)", "\\1.", c("Mr Smith", "Mrs Smith"))
#[1] "Mr. Smith"  "Mrs. Smith"
gsub("Mr\\b", "Mr.", c("Mr", "Mrs"))

[1] "Mr." "Mrs"