r-白天对DateTime数据进行排序,但从下午4点到下午4点



我每天都有有关公司的不同推文,我想一天对它们进行分组。我已经这样做了。但是,我想从00:00到23:59进行排序,而是从16:00到15:59(由于纽约证券交易所的开放时间(。

推文(否定,中性和正面是对情感的(:

 Company,Datetime_UTC,Negative,Neutral,Positive,Volume
 AXP,2013-06-01 16:00:00+00:00,0,2,0,2
 AXP,2013-06-01 17:00:00+00:00,0,2,0,2
 AXP,2013-06-02 05:00:00+00:00,0,1,0,1
 AXP,2013-06-02 16:00:00+00:00,0,2,0,2

我的代码:

 Tweets$Datetime_UTC <- as.Date(Tweets$Datetime)
 Sent <- aggregate(list(Tweets$Negative, Tweets$Neutral, Tweets$Positive), by=list(Tweets$Company, Tweets$Datetime_UTC), sum)
 colnames(Sent) <- c("Company", "Date", "Negative", "Neutral", "Positive")
 Sent <- Sent[order(Sent$Company),]

该代码的输出:

 Company,Date,Negative,Neutral,Positive
 AXP,2013-06-01,0,4,0
 AXP,2013-06-02,0,3,0

我想如何成为(考虑到一天应该从16:00开始(:

 Company,Date,Negative,Neutral,Positive
 AXP,2013-06-02,0,5,0
 AXP,2013-06-03,0,2,0  

如您所见,我的代码几乎有效。我只想在不同的时间窗口后进行排序。

如何做?一个想法是将 8H添加到每个Datetime_UTC,这将使16:00更改为00:00。之后,我可以使用我的代码。这是可能的吗?

预先感谢!: - (

有效地在16:00而不是00:00开始的日期。一种选择是转换为时期时间(自1970:01:01 00:00:00+00:00以来的秒数,只需将数据转发八个小时。

您可以转换为时代秒,然后添加8小时的秒数,然后全部转换回Date类。然后,您只会像以前那样汇总。

Tweets$Datetime_UTC <- as.Date(as.integer(as.POSIXct(Tweets)) + 28800)

用它替换您的第一行代码,它应该可以解决问题。

最新更新