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路比赛。然后排除这些值(在本例中为行)
我想要这个
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))),]
显然不能正常工作
答案 0 :(得分: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))
答案 1 :(得分:2)
这应该这样做:
df2[ !df2$primer %in% df1$primer, ]