使用字符向量索引

Dou*_*oug 3 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
Run Code Online (Sandbox Code Playgroud)

我有角色矢量:

 ges <- c('Acan','Casp6')
Run Code Online (Sandbox Code Playgroud)

我只想要$ primer == ges的行

我试过了

df[df$primer == ges,]
Run Code Online (Sandbox Code Playgroud)

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

我觉得这很荒谬,但是我搞砸了一些基本的东西

帮助一个兄弟

Das*_*son 6

==将通过元素检查平等来做元素.矢量回收在这里发挥作用; 它将检查引物的第一个元素对ges的第一个元素,第二个元素的引物对ges的第二个元素,引物的第三个元素对ges的第一个元素(由于回收)等等等等.你真正想要的是使用%in%操作符来检查引物的元素是否在vector ges中.

df[df$primer %in% ges,]
Run Code Online (Sandbox Code Playgroud)