将整数分布在多行中,除以常数除以它的次数

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分钟。我做到了循环。能否以更优雅的方式实现?

arg*_*t91 2

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)