【问题标题】:R subsetting if both conditions are met如果两个条件都满足,则 R 子集
【发布时间】:2021-05-02 00:21:12
【问题描述】:

我正在尝试根据两个条件对数据框 df.1 进行子集化:

  1. Accession 变量中的观察值应包含

  2. kinase.or.not 中的观察结果应为 kinase

下面是我使用的代码。但似乎第一个条件grep(";", df.1$Accession) 被忽略了。这是为什么?谢谢!

df.2 <- df.1[grep(";", df.1$Accession) & df.1$kinase.or.not == "Kinase",]

【问题讨论】:

    标签: r subset


    【解决方案1】:

    我们需要grepl 而不是grep - 区别在于grep 返回数字位置索引,而grepl 返回一个逻辑向量,可以与&amp; 一起使用来加入复合表达式

    df.1[grepl(";", df.1$Accession) & df.1$kinase.or.not == "Kinase",]
    

    【讨论】:

    • 你是对的!它在我使用grepl 时有效。但是为什么grep 不能以同样的方式完成它的工作呢?
    • @Dr.ChemBio 正如我所提到的,您正在使用一个返回数字索引的逻辑表达式,并且 grep 的元素数量将等于 TRUE 值的数量,从而产生各种问题你可以想象
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多