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

时间:2009-10-02 14:55:17

标签: 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)

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

1 个答案:

答案 0 :(得分:3)

试图找出所有最高法院大法官都没有参与的案件?不要假设您有一个可以添加的小样本数据集?

一个想法:将矢量重叠在一起,以便你有一个像data.frame(“justice”,“case”)这样的数据集。然后使用hadley的reshape包(使用cast函数)来计算每个案例的法官数量。任何少于大法官总数的案件都将是“不良案件”。