我的数据框中有一个带有日落时间(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"
我需要添加什么才能使其正常工作?
答案 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