Предполагая, что магазин номер не имеет значения, и изменять последние три строки в данном примере данных, представленных в этом вопросе, чтобы быть 09:12:..
, а не 09:11:..
таким образом, мы по крайней мере, две разные минуты:
# create test data
Lines <- "Store No.,Date,Time,Watt
33,2011/09/26,09:11:01,0.0599E+03
34,2011/09/26,09:11:02,0.0597E+03
35,2011/09/26,09:11:03,0.0598E+03
36,2011/09/26,09:11:04,0.0596E+03
37,2011/09/26,09:11:05,0.0593E+03
38,2011/09/26,09:11:06,0.0595E+03
39,2011/09/26,09:12:07,0.0595E+03
40,2011/09/26,09:12:08,0.0595E+03
41,2011/09/26,09:12:09,0.0591E+03"
cat(Lines, "\n", file = "data.txt")
# read in aggregating at the same time
library(zoo)
library(chron)
z <- read.zoo("data.txt", header = TRUE, sep = ",", index = 2:3,
FUN = paste, FUN2 = function(x) trunc(as.chron(x), "00:01:00"),
aggregate = mean)[, -1]
Здесь FUN
применяется к столбцам, указанным index
. Он вставляет их вместе, а затем FUN2
применяется к результату FUN
, создавая дату/время chron
. Наконец строки с одинаковыми значениями FUN2
затем агрегируются принимая среднее Watt
подачи:
> z
(09/26/11 09:11:00) (09/26/11 09:12:00)
59.63333 59.36667
В зависимости от того, что хотел aggregate
аргумент может быть изменен на aggregate = function(x) tail(x, 1)
вместо aggregate
аргумента показано.
Для получения дополнительной информации и примеров загрузите пакет зоопарка и посмотрите в ?read.zoo
, ?aggregate.zoo
и vignette("zoo-read")
, а также другие виньетки и файлы справки.
ОБНОВЛЕНИЕ: Небольшое упрощение с использованием аргумента FUN2
. Не уверен, но read.zoo
аргумент , возможно, не существовал в момент ответа на этот вопрос.
Поиск r-help и/или StackOverflow для ответов, связанных с пакетом и агрегацией зоопарка. Это было рассмотрено сто раз. Или просто установите зоопарк и прочитайте его четыре виньетки, возможно, начиная с обновленной версии опубликованной статьи. –
На самом деле я попытался найти StackOverflow, но не смог найти аналогичный вопрос, обращаясь к столбцу времени w.r.t. второй столбец. :( –