Tôi có một tập dữ liệu với cấu trúc giống như logfile, tôi muốn tập hợp dữ liệu theo phạm vi ngày nhưng chỉ có thể thực hiện trên một tham số.
dữ liệu của tôi trông như thế này:
date_time loc_id node energy kgco2
1 2009-02-27 00:11:08 87 103 0.00000 0.00000
2 2009-02-27 01:05:05 87 103 7.00000 3.75900
3 2009-02-27 02:05:05 87 103 6.40039 3.43701
4 2009-02-27 03:05:05 87 103 4.79883 2.57697
5 2009-02-27 04:05:05 87 103 4.10156 2.20254
6 2009-02-27 05:05:05 87 103 2.59961 1.39599
tệp bao gồm dữ liệu cho cả năm, tôi muốn tạo các ô tóm tắt cho mỗi tháng và có lẽ cả tuần
Tôi đang xử lý date_time như sau:
> dt <-as.POSIXlt(ae$date_time)
> ae$dt <- dt
> names(ae$dt)
[1] "sec" "min" "hour" "mday" "mon" "year" "wday" "yday" "isdst"
bây giờ tôi đang cố gắng tập hợp dữ liệu dưới dạng:
> x <- ae$energy[ae$dt$year=="110" & ae$dt$mon=="10"]
> x
numeric(0)
"110" là vì những điều sau đây:
> range(ae$dt$year)
[1] 109 110
Tôi cũng đã thử những điều sau đây không có may mắn:
> d <- subset(ae, (dt$year=="110" & dt$mon=="10"), select=energy)
tuy nhiên những công việc này:
> d <- subset(ae, dt$year=="110", select=energy)
và điều này cũng vậy
> d <- subset(ae, dt$mon=="10", select=energy)
bất kỳ ý tưởng về làm thế nào tôi có thể tập hợp con bằng cách chọn cả năm và tháng?
Cảm ơn,
2
Mã của bạn không hoạt động vì các thành phần của đối tượng POSIXlt là số / số nguyên, không phải ký tự. Nhưng như Shane đã nói, bạn thực sự nên sử dụng một lớp chuỗi thời gian ...
—
Joshua Ulrich
vâng, nếu bạn nhận thấy tôi đã đăng giải pháp bên dưới vài ngày trước.
—
G Garcia