2014-10-12 25 views
0

我想弄清楚如何获得R中两个不等长值列表之间不同的值列表。查找R中列表之间的差异:获取与布尔值或列表位置相反的值

我曾试图用%%的一个否定版本如下:

list1 <- c(1, 3, 5, 7, 9, 11) 
list2 <- c(1, 3, 7, 11) 
'%ni%' <- Negate('%in%') 
outlist <- list1 %ni% list2 
outlist 
outlisttrue <- which(outlist==TRUE) 
outlisttrue 

哪个返回如下:

[1] FALSE FALSE TRUE FALSE TRUE FALSE 
[1] 3 5 

所以outlist给我数据以布尔方式显示,而outlisttrue似乎在列出TRUE结果的列表中的位置。

我想返回的下面,这两个原始列表之间的不同实际值的列表:

[1] 5 9 

任何人都可以提供我怎么会在这里修改我的做法一个简单的解决方案?感谢您的时间。

回答

1
setdiff(list1, list2) 
# [1] 5 9 

list1[list1 %ni% list2] 
#[1] 5 9 
+0

我知道这将是一些简单!谢谢你。 – user2439887 2014-10-12 08:47:22

相关问题