如何在r中的两个特定时间点之间进行子集化

时间:2017-07-31 05:06:27

标签: r time-series subset

我有一个关于在我的数据集的特定时间点之外对数据进行子集化或排除的问题。我的数据集的一小部分样本如下,已经从12 000多次观测的原始数据框中进行了大量的子集化

enter image description here

所以我想要实现的是能够在两个特定时间点之间获取该数据的子集,例如在13:30:00和19:30:00之间。这样做的原因是我希望看到外部温度对蜂箱活动的影响,活动是蜜蜂进入和离开蜂巢的原始数量。

在这个阶段,我可以在温度范围,日期范围等之间进行分组。但我不能分配时间。有人会知道如何做到这一点吗?

我尝试的代码看起来像这样

x <- subset(beedata, Time >= 10:30:00 | Time <= 19:30:00, 
select=c(Date, Time, Activity, Outside.Temp))  

然而,这给了我一个错误:

&#34; 1:在10:30:0:数值表达式有21个元素:只使用第一个元素 2:在Ops.factor(时间,10:30:0)中:'&gt; ='对于因素没有意义 3:在19:30:0:数值表达式有12个元素:只使用第一个元素 4:在Ops.factor中(时间,19:30:0):'&lt; ='对于因素&#34;没有意义。

因为&gt; =对于因素没有意义,这是有意义的,但我不确定要将此更改为时间。 as.Date适用于日期,但据我所知,它并不适用于时间。至于使用的第一个元素,我不理解这个错误。希望这很清楚。

干杯 马特

1 个答案:

答案 0 :(得分:1)

不确定为什么你的数据会出现因素,但是我假设你应该能够用

来转换单个元素
strptime(toString(*factor*))

然后从那里开始,所有内容都应该与日期相当,所以下面的内容应该有效

*date* >= strptime("13:30:00", "%H:%M:%S") & *date* <= strptime("19:30:00", "%H:%M:%S")