首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一种非面向索引的搜索R中两个列表之间唯一值的方法

一种非面向索引的搜索R中两个列表之间唯一值的方法
EN

Stack Overflow用户
提问于 2016-07-18 19:01:13
回答 1查看 60关注 0票数 2

假设我有一个列表中的一个部分,如下所示:

代码语言:javascript
复制
aaa[[1]]
# [1] "A5-5,73"  "B3-4,73"  "E3-8,73"  "A1-8,73"  "C1-7,73"  "A1-2,73"  "C3-2,73"  "C1-1,73"

假设我有另一个列表,其中有一个类似于以下部分的部分:

代码语言:javascript
复制
bbb[[1]]
# [1] "B3-4,73"  "C3-2,73"  "A5-5,73"  "A1-8,73"  "A1-2,73"  "A1-5,73"  "B1-1,73"  "C1-4,73"

考虑一下我现在

代码语言:javascript
复制
which(aaa[[1]]!= bbb[[1]])

回传

代码语言:javascript
复制
# [1]  1  2  3  5  6  7  8  

这在技术上是正确的,因为索引[4]aaabbb中都是相同的。

我想要返回的是:

代码语言:javascript
复制
# [1] "C1-7,73"  "A1-2,73" "C1-1,73"

因为这些是aaa的值,不管位置如何,这些值都不在bbb中。我还可以使用一个只提供一个索引号的解决方案,例如:

代码语言:javascript
复制
# [1] 5 6 8

这里是一个可重复的例子:

代码语言:javascript
复制
aaa <- vector("list")
aaa[[1]] <- c("A5-5,73",  "B3-4,73",  "E3-8,73",  "A1-8,73",
          "C1-7,73",  "A1-2,73",  "C3-2,73",  "C1-1,73")
bbb <- vector("list")
bbb[[1]] <- c("B3-4,73",  "C3-2,73",  "A5-5,73",  "A1-8,73",
          "A1-2,73",  "A1-5,73",  "B1-1,73",  "C1-4,73")
EN

回答 1

Stack Overflow用户

发布于 2016-07-18 20:38:18

@Richard Scriven在他的评论中提到

代码语言:javascript
复制
setdiff(aaa[[1]], bbb[[1]])

是获取元素的方法。当您还请求一个索引号时,您可以使用哪个()

代码语言:javascript
复制
which(aaa[[1]] %in% setdiff(aaa[[1]], bbb[[1]]))

%在%中生成逻辑值,而逻辑值()则指示它们在何处为真。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38444148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档