获取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]
回答
使用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