使用字符向量索引

时间:2012-08-19 01:31:41

标签: r

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,]

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

我觉得这很荒谬但是我搞砸了某个基本的

帮助兄弟出去

1 个答案:

答案 0 :(得分:6)

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

df[df$primer %in% ges,]