在R data.frame

时间:2015-09-27 21:13:55

标签: r dataframe

什么是sql group相当于R 例如 我想在data.frame上执行此操作

SELECT MAX(temp) from table group by day

通过子集函数
注意::

  

我知道sqldf,我不想出于某种目的使用它

1 个答案:

答案 0 :(得分:1)

我们可以使用aggregate中的base R。在这里,我使用的是公式方法,其中分组变量位于~的RHS上。将FUN指定为max以获取' temp'

的最大值
aggregate(temp~day, df1, FUN = max)

或者使用dplyr,我们将分组日期'并在max内获得summarise的临时值。

library(dplyr)
df1 %>%
    group_by(day) %>%
    summarise(temp= max(temp))

或者使用data.table,我们会转换' data.frame'到' data.table' (setDT(df1)),按'天'分组,我们得到max' temp'。

library(data.table)
setDT(df1)[, list(temp=max(temp)), by = day]