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')

$ prime==gesの行のみが必要です

私はもう試した

df[df$primer == ges,]

ただし、これに等しいデータフレーム内のすべての行とは対照的に、これら2つの文字に等しい最初の行のみを返します。

これはばかばかしいほど単純なように感じますが、私はどこか基本的なものを台無しにしています

兄弟を助けて

4

1 に答える 1

6

==等式の要素ごとのチェックを行います。ここでベクターのリサイクルが始まります。プライマーの最初の要素をgesの最初の要素に対して、プライマーの2番目の要素をgesの2番目の要素に対して、プライマーの3番目の要素をgesの最初の要素に対して(リサイクルのために)チェックします。 。実際に必要なのは、%in%演算子を使用して、プライマーの要素がベクトルgesにあるかどうかを確認することです。

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