代码之家  ›  专栏  ›  技术社区  ›  tnt

润滑油从YMD-U-HMS至IMD-U-HM

  •  0
  • tnt  · 技术社区  · 6 年前

    我的数据框中有一个日落时间变量(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 回复  |  直到 6 年前
        1
  •  1
  •   phiver    6 年前

    你需要在变异中分配变化。如果不使用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