【问题标题】:Selecting unique values from single column of a data frame从数据框的单列中选择唯一值
【发布时间】:2018-03-05 02:40:52
【问题描述】:

我有一个数据框,其中包含五个代表特定细菌的字符变量。然后,我对每个以字母 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_”方法

我尝试使用 as.factor 和 as.numeric 对向量进行变异,但是这两种方法都不起作用,因为第一种方法会产生与上述相同的错误,并且 as.numeric 返回 NAs。

提前致谢

【问题讨论】:

  • 是这个吗? data$x[!data$x %in% unlist(data[-1])]。注意:我创建了 data.frame,参数为 stringsAsFactors = FALSE

标签: r


【解决方案1】:

您引用的参考建议使用setdiff。要应用该解决方案,您唯一需要做的就是将四列转换为一列,以便将其视为一组。你可以用unlist来做到这一点

setdiff(data$x, unlist(data[,2:5]))
"K0006"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    相关资源
    最近更新 更多