gpt4 book ai didi

r - 在 R 中处理日期和时间数据

转载 作者:行者123 更新时间:2023-12-02 06:42:51 25 4
gpt4 key购买 nike

亲爱的,我有一个直接来自传感器的数据框。数据在单个列中提供日期和时间。我希望 R 能够识别这些数据,然后在数据框中创建一个相邻的列,该列给出一个对应于时间和日期列中的新日期的数字。例如 data$time.date 中的 25/02/2011 13:34 将在新列 data$day 中给出 1,而 data$time.date 中的 26/02/2011 13:34 将得到 2,依此类推。 ..

有谁知道如何解决这个问题?在此先感谢您的帮助。

最佳答案

您可以使用 cut() 并将该调用产生的因子转换为数字 。这是一个带有虚拟数据的示例:

> sdate <- as.POSIXlt("25/02/2011 13:34", format = "%d/%m/%Y %H:%M")
> edate <- as.POSIXlt("02/03/2011 13:34", format = "%d/%m/%Y %H:%M")
> df <- data.frame(dt = seq(from = sdate, to = edate, by = "hours"))
> head(df)
dt
1 2011-02-25 13:34:00
2 2011-02-25 14:34:00
3 2011-02-25 15:34:00
4 2011-02-25 16:34:00
5 2011-02-25 17:34:00
6 2011-02-25 18:34:00

我们使用 cut() 将日期时间列切割成天。 这会产生一个以日期为标签的因子。我们将此因子转换为数字以获得 1, 2, ... :

> df <- within(df, day <- cut(dt, "day", labels = FALSE))
> head(df, 13)
dt day
1 2011-02-25 13:34:00 1
2 2011-02-25 14:34:00 1
3 2011-02-25 15:34:00 1
4 2011-02-25 16:34:00 1
5 2011-02-25 17:34:00 1
6 2011-02-25 18:34:00 1
7 2011-02-25 19:34:00 1
8 2011-02-25 20:34:00 1
9 2011-02-25 21:34:00 1
10 2011-02-25 22:34:00 1
11 2011-02-25 23:34:00 1
12 2011-02-26 00:34:00 2
13 2011-02-26 01:34:00 2

关于r - 在 R 中处理日期和时间数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5158179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com