Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于在R中创建时间段/间隔的问题?_R_Time_Intervals_Lubridate_Duration - Fatal编程技术网

关于在R中创建时间段/间隔的问题?

关于在R中创建时间段/间隔的问题?,r,time,intervals,lubridate,duration,R,Time,Intervals,Lubridate,Duration,我对在R中创建时间段有问题 我手头的数据是 现在我想做以下几点 确定开始和结束时间之间的小时间隔,并创建一个列表 确定b/n开始和休息时间的小时间隔 最后,删除中断间隔以查找总时间 然后创建一个输出 您能帮助我吗?我不完全确定您到底需要什么,但据我所知,这里有一些东西可以帮助您: library(tidyverse) library(lubridate) #> #> Attaching package: 'lubridate' #> The following object

我对在R中创建时间段有问题

我手头的数据是

现在我想做以下几点

确定开始和结束时间之间的小时间隔,并创建一个列表

确定b/n开始和休息时间的小时间隔

最后,删除中断间隔以查找总时间

然后创建一个输出


您能帮助我吗?

我不完全确定您到底需要什么,但据我所知,这里有一些东西可以帮助您:

library(tidyverse)
library(lubridate)
#> 
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#> 
#>     date


t <- tibble(
  place = "xyz", 
  st = "9:00", 
  et = "13:00"
)


t  <- t %>% 
  mutate(stdur = period_to_seconds(hm(st))) %>% 
  mutate(etdur = period_to_seconds(hm(et))) %>% 
  mutate(interval = dseconds(etdur - stdur)) %>% 
  mutate(interval_hours = seconds_to_period(interval))


glimpse(t)
#> Observations: 1
#> Variables: 7
#> $ place          <chr> "xyz"
#> $ st             <chr> "9:00"
#> $ et             <chr> "13:00"
#> $ stdur          <dbl> 32400
#> $ etdur          <dbl> 46800
#> $ interval       <Duration> 14400s (~4 hours)
#> $ interval_hours <Period> 4H 0M 0S
Created on 2020-02-10 by the reprex package (v0.3.0)
库(tidyverse)
图书馆(lubridate)
#> 
#>附加包装:“lubridate”
#>以下对象已从“package:base”屏蔽:
#> 
#>日期
t%
突变(etdur=周期到秒(hm(et))%>%
突变(间隔=dseconds(etdur-stdur))%>%
变异(间隔时间=秒到周期(间隔))
一瞥(t)
#>意见:1
#>变量:7
#>$place“xyz”
#>$st“9:00”
#>$et“13:00”
#>$stdur 32400
#>埃特杜尔46800美元
#>$interval 14400s(~4小时)
#>$interval_hours 4H 0M 0S
由reprex软件包(v0.3.0)于2020年2月10日创建

投递时,请按照标签顶部的说明操作。