R润滑ymd_hms至imd_hm的圆形润滑脂
在我的数据帧中有一个日落时间(ymd_hms)变量,我想将其四舍五入到最近的一分钟 我尝试了以下方法,但是我的日期(POSIXct格式)没有改变R润滑ymd_hms至imd_hm的圆形润滑脂,r,lubridate,posixct,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
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"
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”
产量%
突变(lubridate::round_日期(日落,单位=“小时”)
总目(产出$日落)
[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”
我需要添加什么才能使其生效?您需要在mutate中分配更改。如果不在mutate dplyr中使用分配,则将创建一个标题与整个函数相同的列
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
你能发布样本数据吗?请用
dput(df)
的输出编辑问题。或者,如果问题太大,用dput(head(df,20))
的输出编辑问题。首先,你的单位必须是分钟。现在你要四舍五入到最近的小时。此外,你还需要指定mutate,比如df%>%mutate(四舍五入的日期=lubridates::round的日期)(sunset,unit=“minute”)
@phiver谢谢你,变异成功了!如果你把这个作为答案,我会接受的。