Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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如何将小时数值转换为%H:%M:%S并将时间添加到日期_R_Date_Time_Posixct - Fatal编程技术网

R如何将小时数值转换为%H:%M:%S并将时间添加到日期

R如何将小时数值转换为%H:%M:%S并将时间添加到日期,r,date,time,posixct,R,Date,Time,Posixct,如果包含类似于 df<- Energy Power StartTime Timehour 7.50 10 2017-10-18 09:47:10.073 0.75 必须提供“来源” 有人能帮我回答第一和第二个问题吗 如果您使用lubridate将时间小时转换为分钟,您可以将其添加到starttime列中 library(lubridate) library(tidyverse) library(r

如果包含类似于

  df<-    Energy  Power    StartTime                 Timehour
          7.50    10     2017-10-18 09:47:10.073     0.75
必须提供“来源”


有人能帮我回答第一和第二个问题吗

如果您使用lubridate将时间小时转换为分钟,您可以将其添加到starttime列中

library(lubridate)
library(tidyverse)
library(readr)

df <- read_table("Energy  Power    StartTime                 Timehour
7.50    10     2017-10-18 09:47:10.073     0.75")

df %>% mutate(
  minutes = minutes(round(Timehour * 60)),
  newTime = StartTime + minutes)

# A tibble: 1 x 6
  Energy Power StartTime           Timehour minutes      newTime            
   <dbl> <int> <dttm>                 <dbl> <S4: Period> <dttm>             
1   7.50    10 2017-10-18 09:47:10    0.750 45M 0S       2017-10-18 10:32:10
库(lubridate)
图书馆(tidyverse)
图书馆(readr)
df%变异(
分钟=分钟(圆形(时间小时*60)),
新时间=开始时间+分钟)
#一个tibble:1 x 6
能量功率开始时间小时分钟新时间
2017-10-18 09:47:10 0.75045米0 2017-10-18 10:32:10
如果需要,首先使用将StartTime列转换为datatime类

df <- df %>% mutate(StartTime = ymd_hms(StartTime))
df%突变(StartTime=ymd_hms(StartTime))

基本解决方案:您需要将时间小时以秒为单位添加到Posixct中

df$Timehour <- df$Timehour*3600
df$StartTime <- as.POSIXct(as.character(df$StartTime),format = "%Y-%m-%d %H:%M:%OS")
df$newtime <- df$StartTime + df$Timehour

  Energy Power           StartTime Timehour             newtime
1    7.5    10 2017-10-18 09:47:10     2700 2017-10-18 10:32:10
df$Timehour
Error in as.POSIXct.numeric(df$Timehour) : 
library(lubridate)
library(tidyverse)
library(readr)

df <- read_table("Energy  Power    StartTime                 Timehour
7.50    10     2017-10-18 09:47:10.073     0.75")

df %>% mutate(
  minutes = minutes(round(Timehour * 60)),
  newTime = StartTime + minutes)

# A tibble: 1 x 6
  Energy Power StartTime           Timehour minutes      newTime            
   <dbl> <int> <dttm>                 <dbl> <S4: Period> <dttm>             
1   7.50    10 2017-10-18 09:47:10    0.750 45M 0S       2017-10-18 10:32:10
df <- df %>% mutate(StartTime = ymd_hms(StartTime))
df$Timehour <- df$Timehour*3600
df$StartTime <- as.POSIXct(as.character(df$StartTime),format = "%Y-%m-%d %H:%M:%OS")
df$newtime <- df$StartTime + df$Timehour

  Energy Power           StartTime Timehour             newtime
1    7.5    10 2017-10-18 09:47:10     2700 2017-10-18 10:32:10
df$Timehour <- strftime(as.POSIXct(df$Timehour,origin='1900-01-01 00:00'),format="%H:%M:%S",tz = "GMT")

  Energy Power           StartTime Timehour             newtime
1    7.5    10 2017-10-18 09:47:10 00:45:00 2017-10-18 10:32:10
df<- read.table(text = "Energy,  Power,    StartTime,                 Timehour
7.50,    10 ,    2017-10-18 09:47:10,    0.75",header = TRUE ,sep = ",")