我在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?
答案 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
中,然后将pmax
与do.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,]))