在特定时间点之间对数据进行子集

时间:2018-02-21 01:02:44

标签: r time-series subset

我希望这是一个简单的问题。我期待按特定时间点对数据集进行子集化。我有超过24小时的数据,持续了几个月。 例如1个数据点是在中午12点收到的,下一个是在下午13:30收到的,下一个是在下午15点收到的......以下是一个例子或者产生一个类似于我的数据集,但是因素要少得多。

x <- sample(1:48)
now <- Sys.time()
y <- seq(from = now,length.out = 48, by = "hours")

data <- data.frame(x,y)

data$Time <- format(data$y,"%H:%M:%S")

T1 <- filter(data,Time >= "06:00:00", Time <= "21:30:00") ## My code for filtering between time points

我已使用下面的代码过滤掉上午6:00到下午21:30之间的数据点,这样可以正常工作,并为我提供正确的子集数据。

T1 <- filter(data,Time >= "06:00:00", Time <= "21:30:00")

但是,当我尝试在21:30 pm到6:00之后对数据进行子集化时会出现问题。

T2 <- filter(data,Time <= "06:00:00", Time >= "21:30:00")

T2 <- filter(data,Time >= "21:30:00", Time <= "06:00:00")

这只是在新的T2帧中为我提供了0值。我觉得这可能是一个简单的修复,我只是错过了我的代码略有变化。

有什么建议吗?

干杯

1 个答案:

答案 0 :(得分:0)

中指定的两个单独的逻辑条件
import wx
def onPygame():
    wx.MessageBox("Pygame!", "Pygame!")
# ...
"event": lambda _: onPygame
# ...

filter(data, Time <= "06:00:00", Time >= "21:30:00") 合并。此外,这两个条件都应用于相同的日,这清楚地说明了结果为空的原因(即,事件不能同时是早期和晚期)。因此,您要使用的是&给出的OR运算符:

|