首页 > 解决方案 > 获得R中多个数据帧的最大值?

问题描述

我有很多列的庞大数据集,我想在新的 df max_df 中获取每个单元格的最大值

df1=data.frame(
          aa=c(12,13,14,15,16,17,16,17,19),
          bb=c(1,2,3,4,5,6,5,6,7))

df2=data.frame(
          aa=c(NA,12,12,13,14,12,17,14,15),
          bb=c(NA,2.5,3.5,2.5,3,4,5,6,7.5))

df3=data.frame(
          aa=c(13,14,15,16,15,14,10,20,21),
          bb=c(2,3,4,5,6,7,8,9,10))

期望的输出

max_df=data.frame(aa=C(NA,14,15,16,16,17,17,20,21),
                  bb=c(NA,3,4,5,6,7,8,9,10))

注意
代码必须为所有可用列提供最大值 [所以我们不能直接在我们的代码中使用 aa 和 bb]

标签: rdplyr

解决方案


使用pmax

as.data.frame(Map(pmax, df1, df2, df3))
#  aa bb
#1 NA NA
#2 14  3
#3 15  4
#4 16  5
#5 16  6
#6 17  7
#7 17  8
#8 20  9
#9 21 10

推荐阅读