Агрегирование по времени - PullRequest
       26

Агрегирование по времени

1 голос
/ 11 сентября 2011

Я хочу агрегировать по столбцу Time, который читается как строка, а затем подставить выходные данные, но я не могу преобразовать вывод tmp$Time в значение Time.

Данные были созданы путем чтения в CSV-файле.

> head(Data)
                 Time  F   Z
1 2011-09-09-06.54.00  1 489
2 2011-09-09-06.54.00  3 678
3 2011-09-09-06.54.00  6 890
4 2011-09-09-07.54.00  8 345
5 2011-09-09-07.54.00 10 567

> strptime(Data$Time, format="%Y-%m-%d-%H.%M.%S" )
[1] "2011-09-09 06:54:00" "2011-09-09 06:54:00"
[3] "2011-09-09 06:54:00" "2011-09-09 07:54:00"
[5] "2011-09-09 07:54:00"

> tmp <- aggregate(Data$Z ~ Data$Time,Data, sum)

> head(tmp)
            Data$Time Data$Z
1 2011-09-09-06.54.00   2057
2 2011-09-09-07.54.00    912

> strptime(tmp[1], format="%Y-%m-%d-%H.%M.%S" )
Data$Time 
       NA 

Я использую агрегат по значению времени перед преобразованием, потому что я не могу заставить его работать со временем, когда оновремя.

1 Ответ

2 голосов
/ 11 сентября 2011

Это похоже на работу

Data <- data.frame(Time = c("2011-09-09 06:54:00", "2011-09-09 06:54:00",
                            "2011-09-09 06:54:00", "2011-09-09 07:54:00",
                            "2011-09-09 07:54:00"),
                   F = c(1, 3, 6, 8, 10),
                   Z = c(489, 678, 890, 345, 567)   )
tmp <- aggregate(Data$Z ~ Data$Time,Data, sum)

strptime(tmp[,1], format="%Y-%m-%d %H:%M:%S" )

производство

[1] "2011-09-09 06:54:00" "2011-09-09 07:54:00"

Я внес два изменения в вашу последнюю строку:

  • tmp[,1] вместо tmp[1]
  • format="%Y-%m-%d %H:%M:%S" вместо format="%Y-%m-%d-%H.%M.%S"
...