在R中,使用正则表达式匹配多个模式并在列表中添加新列

蒂莫西·哈丁(Timothy Harding)

我发现了许多示例,这些示例说明了如何使用一个模式和一个替换来匹配和更新整个列表,但是我现在正在寻找的是在单个语句或循环中针对多个模式和多个替换执行此操作的方法。

例子:

> print(recs)
  phonenumber amount
1     5345091    200
2     5386052    200
3     5413949    600
4     7420155    700
5     7992284    600

我想插入一个名为'service_provider'的新列,其中/ ^ 5 /作为Company1,/ ^ 7 /作为Company2。

我可以使用以下两行R:

recs$service_provider[grepl("^5", recs$phonenumber)]<-"Company1"
recs$service_provider[grepl("^7", recs$phonenumber)]<-"Company2"

然后我得到:

  phonenumber amount service_provider
1     5345091    200          Company1
2     5386052    200          Company1
3     5413949    600          Company1
4     7420155    700          Company2
5     7992284    600          Company2

我想提供一个列表,而不是离散的grepl集,这样一来,将特定于国家/地区的信息放在一个地方,而将所有编程逻辑放在另一个地方就容易了。

thisPhoneCompanies<-list(c('^5','Company1'),c('^7','Company2'))

在其他语言中,我将在“电话公司”列表上使用for循环

For every row in thisPhoneCompanies
    Add service provider to matched entries in recs (such as the grepl statement)
end loop

但是我知道这不是在R中实现的方法

多米尼克·科托伊斯

使用stringi

library(stringi)
recs$service_provider <- stri_replace_all_regex(str = recs$phonenumber,
                                        pattern = c('^5.*','^7.*'), 
                                        replacement = c('Company1', 'Company2'),
                                        vectorize_all = FALSE)

recs
#   phonenumber amount service_provider
# 1     5345091    200         Company1
# 2     5386052    200         Company1
# 3     5413949    600         Company1
# 4     7420155    700         Company2
# 5     7992284    600         Company2

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R-正则表达式匹配模式,并且仅将模式存储在新列中?

来自分类Dev

将多个正则表达式匹配项添加到列表列表中

来自分类Dev

将多个正则表达式匹配项添加到列表列表中

来自分类Dev

R-在用户函数中获取与正则表达式模式匹配的表的列表

来自分类Dev

使用正则表达式(regex)在R中同时替换多个模式

来自分类Dev

使用正则表达式从R中的嵌套列表中提取模式

来自分类Dev

使用 R 正则表达式的模式匹配问题

来自分类Dev

正则表达式从匹配中删除模式

来自分类Dev

正则表达式在模式中匹配名称

来自分类Dev

正则表达式模式无法在python中匹配

来自分类Dev

正则表达式用于XSD中的模式匹配

来自分类Dev

正则表达式以匹配HTML代码中的模式

来自分类Dev

Java中的正则表达式匹配模式

来自分类Dev

在Java正则表达式中匹配错误的模式

来自分类Dev

模式匹配 Scala 中的正则表达式数组

来自分类Dev

在 Python 中匹配多行正则表达式模式

来自分类Dev

如何在Ruby中匹配多个正则表达式模式

来自分类Dev

如何在Perl中的目录下匹配多个文件的正则表达式模式?

来自分类Dev

在 Scala 中匹配多个正则表达式模式时忽略组

来自分类Dev

.NET对象列表中的正则表达式样式模式匹配

来自分类Dev

.NET对象列表中的正则表达式样式模式匹配

来自分类Dev

如何使用正则表达式匹配较大模式中的模式?

来自分类Dev

正则表达式中多个匹配项的混淆

来自分类Dev

正则表达式以匹配网址中的多个单词

来自分类Dev

在Java正则表达式中匹配多个组

来自分类Dev

在匹配的正则表达式中添加后缀

来自分类Dev

正则表达式-匹配列表中的数字

来自分类Dev

正则表达式:模式匹配多个模式

来自分类Dev

使用正则表达式熊猫添加新列

Related 相关文章

  1. 1

    R-正则表达式匹配模式,并且仅将模式存储在新列中?

  2. 2

    将多个正则表达式匹配项添加到列表列表中

  3. 3

    将多个正则表达式匹配项添加到列表列表中

  4. 4

    R-在用户函数中获取与正则表达式模式匹配的表的列表

  5. 5

    使用正则表达式(regex)在R中同时替换多个模式

  6. 6

    使用正则表达式从R中的嵌套列表中提取模式

  7. 7

    使用 R 正则表达式的模式匹配问题

  8. 8

    正则表达式从匹配中删除模式

  9. 9

    正则表达式在模式中匹配名称

  10. 10

    正则表达式模式无法在python中匹配

  11. 11

    正则表达式用于XSD中的模式匹配

  12. 12

    正则表达式以匹配HTML代码中的模式

  13. 13

    Java中的正则表达式匹配模式

  14. 14

    在Java正则表达式中匹配错误的模式

  15. 15

    模式匹配 Scala 中的正则表达式数组

  16. 16

    在 Python 中匹配多行正则表达式模式

  17. 17

    如何在Ruby中匹配多个正则表达式模式

  18. 18

    如何在Perl中的目录下匹配多个文件的正则表达式模式?

  19. 19

    在 Scala 中匹配多个正则表达式模式时忽略组

  20. 20

    .NET对象列表中的正则表达式样式模式匹配

  21. 21

    .NET对象列表中的正则表达式样式模式匹配

  22. 22

    如何使用正则表达式匹配较大模式中的模式?

  23. 23

    正则表达式中多个匹配项的混淆

  24. 24

    正则表达式以匹配网址中的多个单词

  25. 25

    在Java正则表达式中匹配多个组

  26. 26

    在匹配的正则表达式中添加后缀

  27. 27

    正则表达式-匹配列表中的数字

  28. 28

    正则表达式:模式匹配多个模式

  29. 29

    使用正则表达式熊猫添加新列

热门标签

归档