Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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 - Fatal编程技术网

如何创建一个新的;时差“;R表中开始和结束时间列中的列

如何创建一个新的;时差“;R表中开始和结束时间列中的列,r,time,R,Time,我得到了一份要分析的数据表。 我有一个包含开始时间的列和一个包含完成时间的列,以3或4位数字表示,例如:下午3:40是1540,上午7:25是725 如何在表中获得具有这些时间差(以分钟为单位)的新列? 参赛作品超过2000件 谢谢你的帮助 structure(list(schedtime = c(1455L, 1640L, 1245L, 1715L, 1039L, 840L), deptime = c(1455L, 1640L, 1245L, 1709L, 1035L, 839L), di

我得到了一份要分析的数据表。 我有一个包含开始时间的列和一个包含完成时间的列,以3或4位数字表示,例如:下午3:40是1540,上午7:25是725

如何在表中获得具有这些时间差(以分钟为单位)的新列? 参赛作品超过2000件

谢谢你的帮助

structure(list(schedtime = c(1455L, 1640L, 1245L, 1715L, 1039L, 
840L), deptime = c(1455L, 1640L, 1245L, 1709L, 1035L, 839L), 
distance = c(184L, 213L, 229L, 229L, 229L, 228L), flightnumber = 
c(5935L, 
6155L, 7208L, 7215L, 7792L, 7800L), weather = c(0L, 0L, 0L, 
0L, 0L, 0L), dayweek = c(4L, 4L, 4L, 4L, 4L, 4L), daymonth = c(1L, 
1L, 1L, 1L, 1L, 1L)), row.names = c(NA, 6L), class = "data.frame")
这是数据集的一个示例(我不确定为什么每个数字后面都有L,表中没有显示)。我想要以分钟为单位的deptime(finish)-schedtime(start)


给定新列,有两个值在午夜之前具有schedtime,在午夜之后具有deptime,例如schedtime 2120和deptime 0010。答案是-1270,考虑到这是一个非常早的离开。如何将其更改为+170,即晚点出发?

dat
dat您可以使用library lubridate查找分钟内的差异。希望这有帮助。lubridate为时间相关数据提供了非常好的功能

dat <- data.frame(c(1540,1820,1330,545,100),c(1850,2150,2325,1330,101))
60*(floor(dat[,2]/100) - floor(dat[,1]/100)) - dat[,1] %% 100 + dat[,2] %% 100
library(lubridate)
df$deptime_new <- minutes(df$deptime-df$schedtime)
库(lubridate)

df$deptime_new您可以使用库lubridate以分钟为单位查找差异。希望这有帮助。lubridate为时间相关数据提供了非常好的功能

library(lubridate)
df$deptime_new <- minutes(df$deptime-df$schedtime)
库(lubridate)

df$deptime_新更大数据集的有效方法-

data.table::setDT(dt)[,time_diff:=minutes(deptime-schedtime)]

> dt
   schedtime deptime distance flightnumber weather dayweek daymonth time_diff
1:      1455    1455      184         5935       0       4        1        0S
2:      1640    1640      213         6155       0       4        1        0S
3:      1245    1245      229         7208       0       4        1        0S
4:      1715    1709      229         7215       0       4        1    -6M 0S
5:      1039    1035      229         7792       0       4        1    -4M 0S
6:       840     839      228         7800       0       4        1    -1M 0S
编辑-(处理1730-1600=130分钟(实际上是90分钟)这样的情况)


大数据集的有效方法-

data.table::setDT(dt)[,time_diff:=minutes(deptime-schedtime)]

> dt
   schedtime deptime distance flightnumber weather dayweek daymonth time_diff
1:      1455    1455      184         5935       0       4        1        0S
2:      1640    1640      213         6155       0       4        1        0S
3:      1245    1245      229         7208       0       4        1        0S
4:      1715    1709      229         7215       0       4        1    -6M 0S
5:      1039    1035      229         7792       0       4        1    -4M 0S
6:       840     839      228         7800       0       4        1    -1M 0S
编辑-(处理1730-1600=130分钟(实际上是90分钟)这样的情况)



我有相同的查询,是否有方法计算列中的时间差并以分钟显示新列中的答案

我有相同的查询,是否有方法计算列中的时间差并以分钟显示新列中的答案

请使用g
dput
预期输出是什么?请使用样本数据更新您的问题,使用
dput
预期输出是什么?由此我得到错误:类型为“closure”的对象不是子附件这给出了错误的答案,例如1730-1600=130分钟,但实际上这是90分钟。由此我得到错误:obje类型为“closure”的ct不是子附件。这给出了不正确的答案,例如1730-1600=130分钟,但实际上这是90分钟。是否有方法计算列中的is并使用答案创建一个新列?是否有方法计算列中的is并使用答案创建一个新列?数据错误。table::setDT(dt):无法通过引用将“dt”转换为data.table,因为绑定已锁定。“dt”很可能位于包(或环境)中已锁定以防止修改其变量绑定。请尝试将对象复制到当前环境,例如:var oh您可以删除dt并重新启动R会话,或者您可以将
dt
复制到新对象,如
dt\u copy复制函数需要下载哪个包?这是来自
数据的函数。table
packagedu install
data.table
package?数据中有错误。table::setDT(dt):无法通过引用将“dt”转换为data.table,因为绑定已锁定。很可能“dt”位于包(或环境)中已锁定以防止修改其变量绑定。请尝试将对象复制到当前环境,例如:var oh您可以删除dt并重新启动R会话,或者您可以将
dt
复制到新对象,如
dt\u copy复制函数需要下载哪个包?这是来自
数据的函数。table
packagedu install
data.table
package?请使用注释部分,因为这不是答案。请使用注释部分,因为这不是答案。