从R中多列中的多行中选取最大值

时间:2019-11-13 08:21:13

标签: r max

我有一个数据框,其中包含15个站点的信息,每个站点10个值。总共每个站点有三十个树径值。 我想通过比较每个站点中所有列的直径值来测量这30个值中的最大值。

我已按站点对数据进行分组。

我的数据框包含以下列 站点名称,直径1,直径2和直径3。

structure(list(ï..Site.ID = structure(c(1L, 1L, 1L, 1L, 1L), .Label = "But", class = "factor"), 
X1.27324062 = c(1.27324062, 2.228171085, 2.54648124, 2.228171085, 
3.501411706), X0.63662031 = c(1.27324062, 0.954930465, 1.27324062, 
1.591550775, 0.318310155), X1.27324062.1 = c(1.27324062, 
0.63662031, 2.864791395, 1.591550775, 1.90986093)), class = "data.frame", row.names = c(NA, 

-5L))

我尝试使用apply函数和pmax函数,它们为我提供了三列中每行的答案,但是我试图比较每个站点中三十个值中每个单元格的值。

1 个答案:

答案 0 :(得分:0)

假设Site_Id是您的第一列,则可以基于该数据split并从该列的所有值中选择max值。

sapply(split(df[-1], df[[1]]), function(x) max(unlist(x), na.rm = TRUE))

#  But 
#3.5014