如何转换和时间戳多个数据帧R.

时间:2014-12-11 15:22:03

标签: r datetime timestamp

我无法将4个传感器的数据时间转换为统计模型和图表中可用的内容。我想要每个传感器'数据帧具有相同的系统。

收集数据约50天,并以%d%m%y%h /%m记录时间。 每个传感器在同一天开始收集数据,但是在不同的时间。 此外,一些传感器在整个实验过程中一次失败一段时间,并且需要在转换时间时考虑到这一点。

从所有传感器第一次开启以来的日 - 小时 - 分钟 - 秒之类的东西是有意义的。我已经研究了strptime并使用了Julian的日子,但我不确定如何在4个数据帧中协调它。我还使用rbind创建了4个传感器的一个数据帧。会更好地使用它来转换数据吗?

编辑:添加数据样本。每个数据帧包含" sensor_id"。

   time    dht22_t dht11_t dht22_h dht11_h db  pa  treatment_hive  wifi sensor_id
1   01/09/2014 15:19    NA      NA  NA      NA  51.75467    NA      0   1   1   
2   01/09/2014 15:19    30.8    31  59.8    44  55.27682    100672  0   1   1
3   01/09/2014 15:19    30.8    31  60.3    44  54.81995    100675  0   1   1
4   01/09/2014 15:19    30.8    31  60.9    44  54.14134    100671  0   1   1
5   01/09/2014 15:19    30.8    31  61.1    44  53.88574    100672  0   1   1
6   01/09/2014 15:19    30.8    31  61.2    44  53.68800    100680  0   1   1

2 个答案:

答案 0 :(得分:0)

您是否尝试过POSIX个功能?这是一个例子(时区是可选的):

as.POSIXct("01/09/2014 15:19", format="%d/%m/%Y %H:%M", tz="GMT")

或者,如果您想要替换数据框中的列:

df$time = as.POSIXlt(df$time, format="%d/%m/%Y %H:%M", tz="GMT")

答案 1 :(得分:0)

使用POSIXct将基本上将数据存储为自1970年1月1日以来的秒数。假设您的time是一个字符串。

df$time.posix <-as.POSIXct(time,"%d/%m/%Y %H:%M",tz="GMT") 

你有一些选择。例如,您可以使用基础秒数

df$time.seconds <- unclass(df$time.posix)

以下是time中第一次观察以来的秒数。

df$time.seconds2 <- unclass(df$time.posix - min(df$time.posix))