R 将数据帧中以小时和分钟表示的三到四位数的时间转换为分钟

R 将数据帧中以小时和分钟表示的三到四位数的时间转换为分钟,r,dataframe,time,R,Dataframe,Time,我有一个dataframe,它有一个名为“time”的列(它有一个integer类)。时间以三位或四位数字表示,例如514表示上午5:14,或1914表示19:14。我需要创建一个新的列“time_2”,它将有“time”列的时间,但只显示分钟。例如,如果第1行的“time”列的值为“514”,则需要转到名为“time_2”的新列,第一个值为“314”分钟 我试图“删除”第一个数字,然后将其乘以60,然后将后面的两个数字相加成后者。然而,我没能做到这一点,而且还有四位数的数据,这让我停下来寻求帮

我有一个dataframe,它有一个名为“time”的列(它有一个integer类)。时间以三位或四位数字表示,例如514表示上午5:14,或1914表示19:14。我需要创建一个新的列“time_2”,它将有“time”列的时间,但只显示分钟。例如,如果第1行的“time”列的值为“514”,则需要转到名为“time_2”的新列,第一个值为“314”分钟

我试图“删除”第一个数字,然后将其乘以60,然后将后面的两个数字相加成后者。然而,我没能做到这一点,而且还有四位数的数据,这让我停下来寻求帮助。我只是不知道怎么做。我真的很感谢你的帮助


(语言:R)

将数字转换为时间戳,并使用
substr

library("lubridate")

InPut
time <- c(521,1914)
time <- substr(as.POSIXct(sprintf("%04.0f", time), format='%H%M'), 12, 16) # Extracting hours and minutes using substr
time <- as.POSIXct(x = time, format = "%H:%M", tz = "UTC")
hour(time) * 60 + minute(time)

OutPut:
[1]  321 1154
库(“lubridate”)
输入

时间将数字转换为时间戳
并使用
substr

library("lubridate")

InPut
time <- c(521,1914)
time <- substr(as.POSIXct(sprintf("%04.0f", time), format='%H%M'), 12, 16) # Extracting hours and minutes using substr
time <- as.POSIXct(x = time, format = "%H:%M", tz = "UTC")
hour(time) * 60 + minute(time)

OutPut:
[1]  321 1154
库(“lubridate”)
输入

时间如果您的时间从未超出00:00-23:59窗口,您可以使用
作为.difftime
从基本R:

x <- c(514,1914)

as.difftime(sprintf("%04d", x), format="%H%M", units="mins")
#Time differences in mins
#[1]  314 1154

如果您的时间从未超出00:00-23:59窗口,则可以使用
as.difftime
从基本R:

x <- c(514,1914)

as.difftime(sprintf("%04d", x), format="%H%M", units="mins")
#Time differences in mins
#[1]  314 1154

以更简单的方式:

library(lubridate)
time <- c(521,1914)
60 *hour(parse_date_time(time, "HM"))+ minute(parse_date_time(time, "HM"))
库(lubridate)

时间以更简单的方式:

library(lubridate)
time <- c(521,1914)
60 *hour(parse_date_time(time, "HM"))+ minute(parse_date_time(time, "HM"))
库(lubridate)
时间