R通过可能替换的向量有条件地替换字符串的一部分

时间:2016-06-02 07:39:29

标签: r replace grep gsub

假设R中有一个数据框,其中包含以下列(其中包括):

android:focusable="false"

我有第二个数据框,如下所示:

V1
Q1r2c5
Q1r5c11
Q1r5_1c130

我想要做的是:在数据框中,搜索V1中“c”后面的部分,并将其替换为第二个数据帧中匹配的替换。因此:

  1. Q1r2c5变为“brand1”
  2. Q1r5c11成为“brand2”
  3. Q1r5_1c130成为“brand3”
  4. 我试过search replace 5 brand1 11 brand2 130 brand3 确实给了我“c”背后的部分。但是,我还没有找到一种简单的方法(除了via for循环)来根据第二个数据帧进行匹配。

    有什么想法吗? 非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以使用match来制作替代品。在下面的示例中,我向第一个数据框添加了一个数据,以便检查出来。

V1 <- read.table(text="Q1r2c5
                 Q1r5c11
                 Q1r5_1c130
                 testc130", stringsAsFactors=F)
V2 <- read.table(text = "search    replace
                 5         brand1
                 11        brand2
                 130       brand3", header = T, stringsAsFactors=F)

V2$replace[match(sub(".*c", "", V1$V1), V2$search)]
[1] "brand1" "brand2" "brand3" "brand3"