3

df

 primer exptname concentrate timepoints replicate    day     realConc
    Acan      0hr        55mM          0        b1 011311 0.0002771494
    Actb      0hr        55mM          0        b1 011311 0.0061298654
 Atf7ip2      0hr        55mM          0        b1 011311 0.0015750373
  Atp2c1      0hr        55mM          0        b1 011311 0.0010109867
   Casp6      0hr        55mM          0        b1 011311 0.0035939088
 Col10a1      0hr        55mM          0        b1 011311 0.0133760938
    Acan      0hr        55mM          0        b1 011311 0.0002771494
    Actb      0hr        55mM          0        b1 011311 0.0061298654
 Atf7ip2      0hr        55mM          0        b1 011311 0.0015750373
  Atp2c1      0hr        55mM          0        b1 011311 0.0010109867
   Casp6      0hr        55mM          0        b1 011311 0.0035939088
 Col10a1      0hr        55mM          0        b1 011311 0.0133760938

我有字符向量:

 ges <- c('Acan','Casp6')

我只想要 $primer == ges 的行

我试过了

df[df$primer == ges,]

但它只返回等于这两个字符的第一行,而不是数据框中等于这个的所有行

我觉得这非常简单,但我在某个基本的地方搞砸了

帮助一个兄弟

4

1 回答 1

6

==将逐个元素地检查相等性。矢量回收在这里发挥作用;它将检查引物的第一个元素与 ges 的第一个元素,引物的第二个元素与 ges 的第二个元素,引物的第三个元素与 ges 的第一个元素(由于回收)等等等等. 您真正想要的是使用%in%运算符检查底漆的元素是否在向量 ges 中。

df[df$primer %in% ges,]
于 2012-08-19T01:38:43.010 回答