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 = ",")