从数据框的单列中选择唯一值

时间:2017-09-23 18:32:17

标签: r

我有一个数据框,由五个代表特定细菌的字符变量组成。然后,我对每个变量进行了数千次观察,所有观察都以字母K开头。例如

    x <- c(K0001,K0001,K0003,K0006)
    y <- c(K0001,K0001,K0002,K0003) 
    z <- c(K0001,K0002,K0007,K0008)
    r <- c(K0001,K0001,K0001,K0001)
    o <- c(K0003,K0009,K0009,K0009)

我需要在第一列中识别出未出现在剩余四列中的任何一列中的独特观察结果。我已经尝试过这里建议的方法,如果我可以使用select ...

创建单独的向量,我认为这种方法可行

How to tell what is in one vector and not another?

但是当我尝试使用代码创建用于分析的矢量时......

x <- select(data$x)

我收到错误

UseMethod(“select_”)出错:   没有适用于'select_'的方法应用于类“character

的对象

我试图使用as.factor和as.numeric来改变向量,但这些方法都不起作用,因为第一个给出了与上面相同的错误,而as.numeric返回了NA。

提前致谢

1 个答案:

答案 0 :(得分:1)

您引用的引用建议使用setdiff。要应用该解决方案,您唯一需要做的就是将四列转换为一列,以便将其视为一个集合。您可以使用unlist

执行此操作
setdiff(data$x, unlist(data[,2:5]))
"K0006"