我有一个每周的时间序列数据,并转换为每月序列,但这里的问题是,我需要将这些数据与其他数据组合在一起,这些数据也是每月的数据,但它具有他们的最后一个月的日期
state_id  county_id  dt          sales1     sales2
    1        AWD     2018-01-06   50.1       43.4
    1        AWD     2018-01-13   42.0       74.4
    1        AWD     2018-01-20   21.0       32.1
    1        AWD     2018-01-27   40.2       40.25
library(tidyverse)
library(lubridate)
final_monthly <- final %>%
  group_by(month = round_date(dt, "monthly"), state_id,county_id) %>%
  summarise_at(vars(starts_with('sales')), mean)期望输出
state_id   county_id    dt          sales1    sales2
    1         AWD      2018-01-31    38.325    47.53这里的日期是month的最后一个值,但是我的代码给了我每月的第一个日期。我想要一个月的最后一天。
发布于 2019-02-01 03:02:15
您可以从zoo使用as.yearmon。试用一下
library(tidyverse)
library(lubridate)
library(zoo)
final %>%
        group_by(dt = as.Date(as.yearmon(dt), frac = 1), state_id,county_id) %>%
        summarise_at(vars(starts_with('sales')), mean) %>%
        select(colnames(final))
# output
# A tibble: 1 x 5
# Groups:   dt, state_id [1]
  state_id county_id         dt sales1  sales2
     <int>     <chr>     <date>  <dbl>   <dbl>
1        1       AWD 2018-01-31 38.325 47.5375这里的提示是as.yearmon(final$dt)给出了一个月向量[1] "janv. 2018" "janv. 2018" "janv. 2018" "janv. 2018"
https://stackoverflow.com/questions/54467312
复制相似问题