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

德申

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

V1
Q1r2c5
Q1r5c11
Q1r5_1c130

我有第二个数据框,看起来像:

search    replace
5         brand1
11        brand2
130       brand3

我要执行的操作如下:在数据帧中,搜索V1中“ c”后面的部分,并将其替换为第二个数据帧中的匹配替换项。因此:

  1. Q1r2c5成为“ brand1”
  2. Q1r5c11成为“ brand2”
  3. Q1r5_1c130成为“ brand3”

我已经尝试过gsub(".*c", "", dataframe$V1"),的确给了我“ c”后面的部分。但是,我还没有找到一种简单的方法(通过for循环除外)基于第二个数据帧进行匹配。

有任何想法吗?非常感谢!

尤尔奈迪

您可以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"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章