gpt4 book ai didi

r - 创建一个包含给定日期和时间列的数据框

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

我想创建一个数据框,其第一列为日期,第二列为时间。条件是时间应以 30 分钟为间隔增加,日期也相应增加。稍后我将手动添加其他列。

> df
Date Time
2012-01-01 00:00:00
2012-01-01 00:30:00
2012-01-01 01:00:00
2012-01-01 01:30:00
.......... ........
.......... ........
and so on...

编辑

也可以通过其他方式完成。

可以使用给定的日期和时间创建单个列,然后使用 tidyr 或任何其他包进行分隔。

> df
DateTime
2012-01-01 00:00:00
2012-01-01 00:30:00
2012-01-01 01:00:00
2012-01-01 01:30:00
..........
..........
and so on...

任何帮助将不胜感激。先感谢您。

最佳答案

您可以使用seq生成序列,指定开始日期和结束日期以及时间间隔

df <- data.frame(DateTime = seq(as.POSIXct("2012-01-01"),
as.POSIXct("2012-02-01"),
by=(30*60)))
head(df)
DateTime
1 2012-01-01 00:00:00
2 2012-01-01 00:30:00
3 2012-01-01 01:00:00
4 2012-01-01 01:30:00
5 2012-01-01 02:00:00
6 2012-01-01 02:30:00

为了将它们放在两个单独的列中,我们可以使用 ?strftime

date_seq <- seq(as.POSIXct("2012-01-01"), 
as.POSIXct("2012-02-01"),
by=(30*60))

df <- data.frame(Date = strftime(date_seq, format="%Y-%m-%d"),
Time = strftime(date_seq, format="%H:%M:%S"))

Date Time
1 2012-01-01 00:00:00
2 2012-01-01 00:00:30
3 2012-01-01 00:01:00
4 2012-01-01 00:01:30
5 2012-01-01 00:02:00
6 2012-01-01 00:02:30

更新

您也可以包含 POSIXct 日期时间的 time 部分。这将使您更好地控制上限和下限:

date_seq <- seq(as.POSIXct("2012-01-01 00:00:00"), 
as.POSIXct("2012-02-02 23:30:00"),
by=(30*60))

df <- data.frame(Date = strftime(date_seq, format="%Y-%m-%d"),
Time = strftime(date_seq, format="%H:%M:%S"))

关于r - 创建一个包含给定日期和时间列的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35859551/

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