r-基于时间计数向数据帧添加时间列

r-基于时间计数向数据帧添加时间列,r,time,timeline,R,Time,Timeline,在我的数据中,我有一列温度测量值和一列显示数据记录器测量温度之前经过的时间。 数据帧包含500000多个观察值 eggtemp <- read.csv("temp_time.csv", header=FALSE) colnames(eggtemp) <- c("time passed", "temp") time passed temp 1 0.00043823 16.876 2 0.00087645 17.903 3 0.0

在我的数据中,我有一列温度测量值和一列显示数据记录器测量温度之前经过的时间。 数据帧包含500000多个观察值

eggtemp <- read.csv("temp_time.csv", header=FALSE)
colnames(eggtemp) <- c("time passed", "temp")

   time passed   temp      
1  0.00043823    16.876    
2  0.00087645    17.903    
3  0.00131470    18.923    
4  0.00175290    19.933    
有没有人能告诉我,是否有一个函数可以获取开始时间并添加“时间经过”值,以获得每次观测的准确时间(和日期)?我就是想不出来


谢谢

当然可以通过
strtime
等方法实现这一点,但我发现
lubridate
软件包有助于我在处理时间问题时保持头脑清醒:

library(lubridate)

df
#   time_passed   temp
# 1  0.00043823 16.876
# 2  0.00087645 17.903
# 3  0.00131470 18.923
# 4  0.00175290 19.933

options(digits.secs = 3) # to see the milliseconds
start <- ymd_hms("2014-07-30 13:05:00.00")
df$time <- start + milliseconds(df$time_passed * 10000)

df
#   time_passed   temp                    time
# 1  0.00043823 16.876 2014-07-30 13:05:00.004
# 2  0.00087645 17.903 2014-07-30 13:05:00.008
# 3  0.00131470 18.923 2014-07-30 13:05:00.013
# 4  0.00175290 19.933 2014-07-30 13:05:00.017
库(lubridate)
df
#时间过了
# 1  0.00043823 16.876
# 2  0.00087645 17.903
# 3  0.00131470 18.923
# 4  0.00175290 19.933
选项(digits.secs=3)#查看毫秒

开始您没有提到
eggtemp[,'time passed']
的单位,但我从您键入的值中猜出了几个小时。我使用lubridate软件包,它使这些计算变得简单。虽然这是绝对有可能与基地R

start <- mdy_hms("7/30/2014 13:05:00")
time_passed <- c(0.00043823, 0.00087645, 0.00131470, 0.00175290)
time_passed <- dhours(time_passed)
time <- start + time_passed

开始谢谢你的回答!运行代码时产生错误:“data.frame(…,check.names=FALSE)中的错误:参数表示行数不同:0,1‘好的,不管怎样,它现在正在工作(将“df$time_passed”更改为“df$‘time passed’”。只有一个语法错误在将其更改为“eggtemp$‘time passed’后对整个专栏起到了魅力作用
start <- mdy_hms("7/30/2014 13:05:00")
time_passed <- c(0.00043823, 0.00087645, 0.00131470, 0.00175290)
time_passed <- dhours(time_passed)
time <- start + time_passed