假设我有一个列表中的一个部分,如下所示:
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"假设我有另一个列表,其中有一个类似于以下部分的部分:
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"考虑一下我现在
which(aaa[[1]]!= bbb[[1]])回传
# [1] 1 2 3 5 6 7 8 这在技术上是正确的,因为索引[4]在aaa和bbb中都是相同的。
我想要返回的是:
# [1] "C1-7,73" "A1-2,73" "C1-1,73"因为这些是aaa的值,不管位置如何,这些值都不在bbb中。我还可以使用一个只提供一个索引号的解决方案,例如:
# [1] 5 6 8这里是一个可重复的例子:
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")发布于 2016-07-18 20:38:18
@Richard Scriven在他的评论中提到
setdiff(aaa[[1]], bbb[[1]])是获取元素的方法。当您还请求一个索引号时,您可以使用哪个()
which(aaa[[1]] %in% setdiff(aaa[[1]], bbb[[1]]))%在%中生成逻辑值,而逻辑值()则指示它们在何处为真。
https://stackoverflow.com/questions/38444148
复制相似问题