gpt4 book ai didi

r - 排除一天中特定时间的行

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

我有一个时间序列的连续数据,以 10 分钟的间隔测量,为期五个月。为简单起见,数据分为两列,如下所示:
时间戳 Temp.Diff
2/14/2011 19:00 -0.385
2/14/2011 19:10 -0.535
2/14/2011 19:20 -0.484
2/14/2011 19:30 -0.409
2/14/2011 19:40 -0.385
2/14/2011 19:50 -0.215

......在接下来的五个月里它会继续。我已经使用 as.POSIXct 解析了 Timestamp 列.
我想选择一天中特定时间的行(例如,从中午 12 点到下午 3 点),我想要么排除一天中的其他时间,要么只提取那 3 个小时,但仍然有数据流顺序(即在时间序列中)。

最佳答案

你似乎知道基本的想法,但只是缺少细节。正如您所提到的,我们只是将时间戳转换为 POSIX 对象,然后再进行子集化。

润滑液

最简单的方法可能是使用 lubridate。首先加载包:

library(lubridate)

接下来转换时间戳:
##*m*onth *d*ay *y*ear _ *h*our *m*inute
d = mdy_hm(dd$Timestamp)

然后我们选择我们想要的。在这种情况下,我想要 7:30 pm 之后的任何日期(无论是哪一天):
dd[hour(d) == 19 & minute(d) > 30 | hour(d) >= 20,]

基础 R 解决方案

首先创建一个上限:
lower = strptime("2/14/2011 19:30","%m/%d/%Y %H:%M")

接下来转换 POSIX 对象中的时间戳:
d = strptime(dd$Timestamp, "%m/%d/%Y %H:%M")

最后,一些数据帧子集:
dd[format(d,"%H:%M") > format(lower,"%H:%M"),]

感谢 plannapus 的最后一部分

上面例子的数据:
dd = read.table(textConnection('Timestamp Temp.Diff
"2/14/2011 19:00" -0.385
"2/14/2011 19:10" -0.535
"2/14/2011 19:20" -0.484
"2/14/2011 19:30" -0.409
"2/14/2011 19:40" -0.385
"2/14/2011 19:50" -0.215'), header=TRUE)

关于r - 排除一天中特定时间的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12891232/

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