【问题标题】:Listing unique elements over multiple vectors in R在 R 中列出多个向量上的唯一元素
【发布时间】:2013-06-25 04:50:59
【问题描述】:

我有三个向量(a、b 和 c),并找到了所有三个向量中的共同元素

common<-Reduce(intersect,list(a,b,c))

我现在想知道哪些元素是 a 独有的。我不能使用a[!(a%in%common)],因为这可能会返回一个和另一个向量中的元素。

我不认为这是一个新的或独特的问题,但我在寻找答案时遇到的部分问题是我不确定 a[!(a%in%common)] 函数被调用了什么。

【问题讨论】:

    标签: r vector unique


    【解决方案1】:

    您可以使用reduce 和 setdiff 获取任意长度的列表

    Reduce(setdiff, list(a,b,c))
    

    【讨论】:

      【解决方案2】:

      简单的解决方案是a[!(a %in% union(b,c))]

      【讨论】:

      • 谢谢——我很尴尬自己没有想到这个。这很简单,尽管有一个更简单的替代答案。
      【解决方案3】:
      setdiff(a, union(b,c) )  # .....
      

      当然取决于“unique to a”的含义对你和我来说是否相同,但对我来说它与a[!(a%in%common)]不同。

      【讨论】:

      • 不,它们绝对不一样,因此我提出了问题。不过,这很好用——谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多