【问题标题】:comparing two data frames columns比较两个数据框列
【发布时间】:2017-07-13 11:15:33
【问题描述】:

我在 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 中做到这一点?

【问题讨论】:

    标签: r


    【解决方案1】:

    我们可以使用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,]))
    

    【讨论】:

      猜你喜欢
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      相关资源
      最近更新 更多