Dmy*_*iuk 5 r dplyr tidyverse feature-engineering
我有一个数据框
Date repair
<date> <dbl>
2018-07-01 4420
2018-07-02 NA
2018-07-03 NA
2018-07-04 NA
2018-07-05 NA
Run Code Online (Sandbox Code Playgroud)
其中4420是时间,以分钟为单位。我试图得到这个:
Date repair
<date> <dbl>
2018-07-01 1440
2018-07-02 1440
2018-07-03 1440
2018-07-04 100
2018-07-05 NA
Run Code Online (Sandbox Code Playgroud)
一天中有1440分钟-剩下100分钟。我做到了循环。能否以更优雅的方式实现?
和dplyr
:
library(dplyr)
df %>%
mutate(
repair = c(rep(1440, floor(repair[1] / 1440)),
repair[1] %% 1440,
rep(NA, n() - length(c(rep(1440, floor(repair[1] / 1440)), repair[1] %% 1440))))
)
Run Code Online (Sandbox Code Playgroud)
输出:
Date repair
1 2018-07-01 1440
2 2018-07-02 1440
3 2018-07-03 1440
4 2018-07-04 100
5 2018-07-05 NA
Run Code Online (Sandbox Code Playgroud)