r语言 - 提取每日最大值和最小值



使用一个月的每日温度读数的大型数据集,我试图从7个不同的记录器中提取每日最高和最低温度。

数据由7个不同温度记录仪在31天内的24小时读数(每小时记录1个温度)组成。

数据集是这样的:

Tort    date    time    ibutton.temp
ABD 01/03/12    00:05:01    28.622
ABD 01/03/12    01:05:01    28.122
ABD 01/03/12    02:05:01    28.122
ABD 01/03/12    03:05:01    28.122
ABD 01/03/12    04:05:01    28.122
ABD 01/03/12    05:05:01    27.622
ABD 01/03/12    06:05:01    27.123
.
.
.
.
.
BCY 01/03/12  00:05:01      27.289
BCY 01/03/12  01:05:01      27.485

是否有函数可以提取整个月每一天的最高和最低温度(即24个温度读数)?

或者使用data.table(如果dat是数据)

  library(data.table)
  setDT(dat)[, list(Max=max(ibutton.temp), Min=min(ibutton.temp)), by=list(Tort, date)]
  #  Tort     date    Max    Min
 #1:  ABD 01/03/12 28.622 27.123
 #2:  BCY 01/03/12 27.485 27.289

您可以在前两列使用aggregate

> aggregate(dat$ibutton.temp, dat[1:2], function(x) {
      c(max = max(x), min = min(x)) })
#   Tort     date  x.max  x.min
# 1  ABD 01/03/12 28.622 27.123
# 2  BCY 01/03/12 27.485 27.289

summaryBy from package doBy

> library(doBy)
> summaryBy(ibutton.temp~Tort+date, dat, FUN = c(max, min))
#   Tort     date ibutton.temp.max ibutton.temp.min
# 1  ABD 01/03/12           28.622           27.123
# 2  BCY 01/03/12           27.485           27.289

,

> dat <- read.table(h=T, text = "Tort    date    time    ibutton.temp
  ABD 01/03/12    00:05:01    28.622
  ABD 01/03/12    01:05:01    28.122
  ABD 01/03/12    02:05:01    28.122
  ABD 01/03/12    03:05:01    28.122
  ABD 01/03/12    04:05:01    28.122
  ABD 01/03/12    05:05:01    27.622
  ABD 01/03/12    06:05:01    27.123
  BCY 01/03/12  00:05:01      27.289
  BCY 01/03/12  01:05:01      27.485")

最新更新