R将ymd_hms舍入为imd_hm

时间:2018-12-18 16:37:28

标签: r lubridate posixct

我的数据框中有一个带有日落时间(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 :(得分:1)

您需要在mutate中分配更改。如果您不使用mutate dplyr中的assign,则会创建一列,其标题与您的整个函数相同。

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

不带赋值和带赋值的mutate示例,请参见最后的列名:

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