我遇到的情况如下:
> print(bob)
[1] "Do not fall in love if you can’t handle pain"
当我尝试用gsub替换cant时,它不起作用:
> gsub("can't", "can not", bob)
[1] "Do not fall in love if you can’t handle pain"
但是,如果我仅用对象的内容替换它,它就可以正常工作:
> gsub("can't", "can not", "Do not fall in love if you can't handle pain")
[1] "Do not fall in love if you can not handle pain"
我真的很困惑,因为我想不出这两者之间的任何差异会导致其失败:
> summary(bob); summary("Do not fall in love if you can't handle pain")
Length Class Mode
1 character character
Length Class Mode
1 character character
变量bob源自数据帧,例如:
bob <- dataframe$column[3]
所以我唯一的线索是它可能与数据框有关。
str_replace也发生同样的事情。如果您对造成此问题的原因有任何见解,请告诉我。
答案 0 :(得分:0)
一些有用的评论员指出符号不匹配。 可以通过按住alt + 0146来键入正确的符号。 否则,在gsub函数中使用“ can.t”将匹配任何符号。
答案 1 :(得分:0)
您可以使用[[:punct:]]
来匹配任何标点符号:
gsub("can[[:punct:]]t", "can not", bob)
# [1] "Do not fall in love if you can not handle pain"