如何找到一个变量的最大值,以另一个变量的大小为条件?

时间:2016-02-24 12:14:03

标签: r max

我有一个与日期(DATA$TEMP)和温度计位置(DATA$DATE)相关联的每小时温度矢量(DATA$PLACE)。

我想根据日期和位置确定最高温度。鉴于我指定了每个日期和位置,我可以轻松地一次完成一个日期和位置。例如

x <- max(DATA$TEMP[DATA$DATE =="20/12/15" & DATA$PLACE=="room"])

但是我有很多日期和位置,并希望能够运行每个日期/位置组合的函数,并返回链接到每个日期/位置组合的最大临时值向量。

3 个答案:

答案 0 :(得分:0)

试试这个

library(dplyr)

x <- DATA %>% 
   group_by(DATE, PLACE) %>%                 
   summarise(maximum= max(TEMP)) 

答案 1 :(得分:0)

这是使用Log.e("time",""+chronometer.getText()); 的答案:

base

更一般地说,这种问题属于 by(DATA$TEMP, list(DATA$DATE, DATA$PLACE), max) 范式。如果你谷歌这个,你会发现在R中有很多方法可以做到这一点。从几个split-apply-combine函数到baseplyrdplyr版本。参见例如here

答案 2 :(得分:0)

data.table

的另一个选项
library(data.table)
setDT(DATA)[, list(Max = max(TEMP)) , .(DATE, PLACE)]

或使用base R aggregate

aggregate(TEMP~DATE+PLACE, DATA, FUN= max)