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,并希望排除 df2 中等于 df1 的引物和复制值的行。

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 路匹配。然后排除这些值(在这种情况下为行)

我要这个

新的_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 回答