正则表达式 – 如何匹配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中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在哪里? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |