在多个向量中查找不常见的元素

Dre*_*way 6 search r vector

我试图找到多个向量之间不常见的元素.也就是说,我想确切地知道所有向量之间不共享的元素(不仅仅是它们的位置等).

我能想出的最好的实现使用嵌套循环,我意识到这可能是效率最低的,最值得注意的是因为我写这个时执行仍在运行.这就是我想出的.(每个*.id是最高法院案件ID的矢量,存储为字符串).

check.cases<-TRUE

if(check.cases) {
    all.cases<-c(AMKennedy.id,AScalia.id,CThomas.id,DHSouter.id,JGRoberts.id,JPStevens.id,RBGinsburg.id,SAAlito.id,SGBreyer.id)
    bad.cases<-c()
    for(b in all.cases) {
        for(t in all.cases) {
            m<-match(t,b)
            bad<-t[which(is.na(m))]
            bad.cases<-append(bad.cases,bad)
        }
    }
    bad.cases<-unique(bad.cases)
}

print(bad.cases)
Run Code Online (Sandbox Code Playgroud)

必须有一种更有效的方法吗?

Sha*_*ane 3

试图找到所有最高法院法官都没有参与的案件?您是否认为您没有可以添加的小样本数据集?

一个想法:将向量相互绑定,这样你就有了一个像 data.frame("justice","case") 这样的数据集。然后使用hadley的reshape包(使用该cast函数)对每个案件的法官人数进行求和。任何少于法官总数的案件都将是“坏案”。

  • ...或者将它们全部组合成一个向量(例如使用“unlist”)并使用“table”进行计数。 (6认同)