比较两个数据帧列

时间:2017-07-13 11:15:34

标签: r

我在r

中有两个数据帧
df1

NO     QC1     QC2      QC3     Total 
123      8       8        8     24 
124      9       8        8     25
125      9       9        9     27

df2

NO     QC1     QC2      QC3     Total 
123      7       7        7      21 
124      9       10       8      27
125      10      10       10     30

我想将上述数据框与总数进行比较。将保留最大总数的行。我想要的数据帧如下

NO     QC1     QC2      QC3    Total 
123     8       8        8      24 
124     9       10       8      27
125     10      10       10     30

NO列在两个数据框中都是唯一的。 我怎么能在R?

中做到这一点

1 个答案:

答案 0 :(得分:5)

我们可以使用pmax在具有相同维度的两个数据集之间获取元素max

pmax(df1, df2)
#   NO QC1 QC2 QC3 Total
#1 123   8   8   8    24
#2 124   9  10   8    27
#3 125  10  10  10    30

如果有多个数据集,请将其放在list中,然后将pmaxdo.call一起使用

do.call(pmax, list(df1, df2))

如果我们只比较'总计'列,也许

t(sapply(seq_len(nrow(df1)), function(i) 
      if(df1$Total[i] > df2$Total[i]) df1[i,] else df2[i,]))