如何使用setequal()来查找唯一的向量对?

时间:2018-02-25 19:24:51

标签: r function set unique

我有一个简单的数据框如下:

    v1 <- c(1,2)
    v2 <- c(1,3)
    v3 <- c(2,1)
    df.test <- data.frame(rbind(v1,v2,v3))
    colnames(df.test) <- c('from', 'to')

我想使用for循环查找&amp;将所有行附加到单独的向量中,然后使用unique或某个set函数来获取唯一的向量对并将它们存储到新的数据框中。现在,我有:

    c <- c()

    for (row in 1:nrow(df.test)) {
        from <- df.test[row, "from"]
        to  <- df.test[row, "to"]
        new.row <- c(from, to)
        c <- c(c, new.row)

        # having trouble storing unique values here...


     }

理想情况下,在仅采用唯一值对后,新数据框应如下所示:enter image description here

有人可以帮忙吗?谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

# sort rows
df.test <- t(apply(df.test, 1, function(x) sort(x, decreasing=F)))

# get unique rows
df.test <- unique(df.test)
print(df.test)