Hãy nói rằng tôi có một vài năm giá trị của dữ liệu mà trông giống như sauLàm thế nào để tập hợp con data.frame theo tuần và sau đó tổng hợp?
# load date package and set random seed
library(lubridate)
set.seed(42)
# create data.frame of dates and income
date <- seq(dmy("26-12-2010"), dmy("15-01-2011"), by = "days")
df <- data.frame(date = date,
wday = wday(date),
wday.name = wday(date, label = TRUE, abbr = TRUE),
income = round(runif(21, 0, 100)),
week = format(date, format="%Y-%U"),
stringsAsFactors = FALSE)
# date wday wday.name income week
# 1 2010-12-26 1 Sun 91 2010-52
# 2 2010-12-27 2 Mon 94 2010-52
# 3 2010-12-28 3 Tues 29 2010-52
# 4 2010-12-29 4 Wed 83 2010-52
# 5 2010-12-30 5 Thurs 64 2010-52
# 6 2010-12-31 6 Fri 52 2010-52
# 7 2011-01-01 7 Sat 74 2011-00
# 8 2011-01-02 1 Sun 13 2011-01
# 9 2011-01-03 2 Mon 66 2011-01
# 10 2011-01-04 3 Tues 71 2011-01
# 11 2011-01-05 4 Wed 46 2011-01
# 12 2011-01-06 5 Thurs 72 2011-01
# 13 2011-01-07 6 Fri 93 2011-01
# 14 2011-01-08 7 Sat 26 2011-01
# 15 2011-01-09 1 Sun 46 2011-02
# 16 2011-01-10 2 Mon 94 2011-02
# 17 2011-01-11 3 Tues 98 2011-02
# 18 2011-01-12 4 Wed 12 2011-02
# 19 2011-01-13 5 Thurs 47 2011-02
# 20 2011-01-14 6 Fri 56 2011-02
# 21 2011-01-15 7 Sat 90 2011-02
Tôi muốn tổng hợp 'thu nhập' cho mỗi tuần (Chủ nhật đến thứ bẩy). Hiện tại, tôi làm như sau:
Weekending 2011-01-01 = sum(df$income[1:7]) = 487
Weekending 2011-01-08 = sum(df$income[8:14]) = 387
Weekending 2011-01-15 = sum(df$income[15:21]) = 443
Tuy nhiên tôi muốn một cách tiếp cận mạnh mẽ hơn sẽ tự động tính theo tuần. Tôi không thể tìm hiểu cách tự động đặt dữ liệu vào các tuần. Bất kì sự trợ giúp nào đều được đánh giá cao.
Vui lòng không thêm giải pháp cho câu hỏi. Nếu bạn muốn trả lời câu hỏi của riêng bạn, hãy làm như vậy trong một câu trả lời (điều này được khuyến khích trên SO). – Andrie
Ahh, ok, tôi không biết liệu đó có phải là hình thức xấu hay không. Tôi sẽ thêm nó như bạn đề nghị. –