R смазать раунд ymd_hms до imd_hm - PullRequest
       21

R смазать раунд ymd_hms до imd_hm

0 голосов
/ 18 декабря 2018

У меня есть переменная с временем заката (ymd_hms) в моем кадре данных, которую я хотел бы округлить до ближайшей минуты.

Я пробовал следующее, но мои даты (формат POSIXct) не изменились.

    head(df$sunset)
    [1] "2018-07-22 00:20:54 UTC" "2018-07-22 00:20:54 UTC" "2018-07-22 00:20:54 UTC" "2018-07-08 00:24:32 UTC"
    [5] "2018-07-08 00:24:33 UTC" "2018-07-08 00:24:33 UTC"

        output <- df %>%
          mutate(lubridate::round_date(sunset, unit="hour")

    head(output$sunset)
    [1] "2018-07-22 00:20:54 UTC" "2018-07-22 00:20:54 UTC" "2018-07-22 00:20:54 UTC" "2018-07-08 00:24:32 UTC"
[5] "2018-07-08 00:24:33 UTC" "2018-07-08 00:24:33 UTC"

Что мне нужно добавить, чтобы это заработало?

1 Ответ

0 голосов
/ 18 декабря 2018

Вам нужно назначить изменение в mutate.Если вы не используете assign в mutate, dplyr создаст столбец с заголовком, таким же, как вся ваша функция.

df %>% 
  mutate(rounded_dates = lubridate::round_date(sunset, unit="minute"))

примеры мутирования без и с присваиванием, см. Название столбца в конце:

iris %>% 
  mutate(Sepal.Length + Sepal.Width)

    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species Sepal.Length + Sepal.Width
1            5.1         3.5          1.4         0.2     setosa                        8.6
2            4.9         3.0          1.4         0.2     setosa                        7.9
.....


iris %>% 
   mutate(addition = Sepal.Length + Sepal.Width)

    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species addition
1            5.1         3.5          1.4         0.2     setosa      8.6
2            4.9         3.0          1.4         0.2     setosa      7.9
...