【发布时间】:2015-06-19 19:54:17
【问题描述】:
我正在寻找一种方法来使用 R 中的查找和替换函数来替换字符串的整个值,而不仅仅是字符串的匹配部分。我有一个包含很多(非常)长名称的数据集,我正在寻找一种有效的方法来查找和更改它们的值。
因此,例如,我尝试更改整个字符串
string <- "Generally.speaking..do.you.prefer.to.try.out.new.experiences.like.trying.things.and.meeting.new.people..or.do.you.prefer.familiar.situations.and.faces."
到
"exp"
使用此代码
string <- gsub("experiences", "exp", string)
但是,这会导致仅将字符串中与“experiences”匹配的部分替换为“exp”,并保留长名称的其余部分(为清楚起见加粗):
“一般来说.speaking..do.you.prefer.to.try.out.new.exp..like.trying.things.and.meeting.new.people..or. do.you.prefer.familiar.situations.and.faces."
在这种情况下,因为字符串中包含“经验”,所以应该将其替换为“经验”。
有没有办法告诉 gsub 或其他一些函数来替换整个值?我看了很多教程,似乎函数只能在字符串或整个值上运行,而不是在两者之间。
【问题讨论】:
-
那么,如果找到“experiences”,则返回“exp”,否则返回整个字符串?
-
@rawr 离得更近了!但是很多字符串名称仍然完好无损。
-
@frank 是的。因此,仅当在字符串中找到模式时才替换该值。我将搜索很多长名称的值。