将匹配搜索条件的所有字符串替换为data.table中的另一个字符串

时间:2016-02-03 18:39:04

标签: r data.table

我的数据如下:

                  sources
 1:           Jana’s iPhone
 2:     Richard's iPhone 6
 3:               Denise's
 4:           Sara’s iPhone
 5:     Jeff’s Apple Watch
 6:    BLAIR’s Apple Watch
 7:      Sunshine's iPhone
 8:         Brian's iPhone
 9: Jonathan’s Apple Watch
10: patricia’s Apple Watch

我正在尝试替换包含iPhone的任何字符串,只需说iPhone。我怎么能这样做?

我在包含名为sources的列的数据表sources上尝试了以下操作:

sources[length(grep("iPhone", sources)) > 0, sources:= "iPhone"]

但是这会将所有行转换为“iPhone”,即使该行最初不包含带有“iPhone”的字符串。我猜这是因为grep或length没有矢量化,所以我最终选择了所有行。那么我的问题就是如何识别包含子字符串的行?

1 个答案:

答案 0 :(得分:5)

改为使用grepl

sources[grepl("iPhone", sources), sources:= "iPhone"]