0

df1

   day  primer replicate count
011311     Arc        b1     0
011311    Bdnf        b1     0
011311    Bves        b1     0
011311     Crh        b1     0
011311    Egr1        b1     0

次のdf1があり、df1のプライマーとレプリケート値に等しいdf2の行を除外したいと思います。

df2

primer exptname concentrate timepoints replicate  day     realConc
Acan      0hr        55mM          0        b1 011311 0.0002771494
Acan      0hr        55mM         20        b1 011311 0.0061298654
Acan      0hr        55mM         40        b1 011311 0.0015750373
Arc       0hr        55mM          0        b1 011311 0.0010109867
Arc       0hr        55mM         20        b1 011311 0.0035939088
Arc       0hr        55mM         40        b1 011311 0.0133760938

だから私の質問は、2ウェイマッチを行う方法がわからないということだと思います。そして、それらの値(この場合は行)を除外します

これ欲しい

new_df

primer exptname concentrate timepoints replicate  day     realConc
Acan      0hr        55mM          0        b1 011311 0.0002771494
Acan      0hr        55mM         20        b1 011311 0.0061298654
Acan      0hr        55mM         40        b1 011311 0.0015750373

私は次のようなことを考えていました:

new_df <- df2[!which(match(paste(df2$primer,df$replicate),paste(df1$primer,df$replicate))),]

明らかに機能していません

4

2 に答える 2

2
exclude<-!(paste(df2$primer,df2$replicate,sep='~')%in%paste(df1$primer,df1$replicate,sep='~'))
df2[exclude,]
#  primer exptname concentrate timepoints replicate   day     realConc
#1   Acan      0hr        55mM          0        b1 11311 0.0002771494
#2   Acan      0hr        55mM         20        b1 11311 0.0061298654
#3   Acan      0hr        55mM         40        b1 11311 0.0015750373

ペーストを使用したくない場合は、使用することもできます

exclude<-!((df2$primer%in%df1$primer)&(df2$replicate%in%df1$replicate))
于 2012-08-19T03:04:14.807 に答える
2

これはそれを行う必要があります:

  df2[ !df2$primer %in% df1$primer, ]
于 2012-08-19T03:29:05.143 に答える