加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 如何匹配R中的所有实例?

发布时间:2020-12-14 06:31:20 所属栏目:百科 来源:网络整理
导读:我有一个1000名的名单. (说A) 我有另外5个名字的清单. (说B) 我想知道在1000个数字列表中出现5个名称的行号. 例如. Amy可以在A中出现25次 B中有Amy. 我想知道Amy在A中出现了哪些行. 我之前使用过匹配,但是只给出了B中5个名字中每个名字的第一次出现,这不符合
我有一个1000名的名单. (说A)
我有另外5个名字的清单. (说B)
我想知道在1000个数字列表中出现5个名称的行号.

例如. Amy可以在A中出现25次
B中有Amy.
我想知道Amy在A中出现了哪些行.

我之前使用过匹配,但是只给出了B中5个名字中每个名字的第一次出现,这不符合我的目的.

我需要在R中做.我对Regex一无所知.

谢谢!

A <- sample(1:10,100,100) ## generate sample data 
 B <- 1:5

 A %in% B
[1] FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE
[13] FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
[25] FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE
[37] FALSE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE
[49]  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
[61]  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE
[73]  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
[85]  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE
[97] FALSE FALSE FALSE  TRUE

which(A %in% B)
 [1]   2   3   4   5   7  11  12  14  16  17  20  21  22  23  24  27  28  30  31
[20]  36  38  39  40  41  43  44  46  49  51  52  55  56  61  62  67  69  71  73
[39]  74  79  85  86  87  88  91  93  94  95 100


lapply(B,function(x) which(A %in% x)) 
[[1]]
 [1]  5 22 23 36 40 49 69

[[2]]
[1] 21 30 39 44 46 56 61 85 93

[[3]]
[1]  2  7 14 28 38 51 62 73 87 91

[[4]]
 [1]  3  4 11 12 20 24 27 41 43 52 55 71 74 79 88

[[5]]
[1]  16  17  31  67  86  94  95 100

没有lapply,你不知道B中哪个元素是A在哪里?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读