2017-05-10 39 views
0

我有一个POSIX时间戳列表(tweet数据集)。我想选择一个特定的长达一周的时间(星期五中午 - 星期五中午),并计算在当前系统时间(例如,星期三下午16点)和期末之间发布的推文数量。R中没有指定日期的一周中的时间

这段代码显然不起作用,因为当前时间总是比历史“更高”。

time.now=as.POSIXct(Sys.time()) 
sum(data$week==15 & data$time > time.now) 

有没有办法到我的数据转换成将开始上周五中午结束,只有指定的时间和工作日的日期无关的格式?

谢谢!

+1

对不起,但不清楚你想要做什么。你是否试图重新定义一个“星期”,以便它在星期五中午而不是星期天午夜开始?然后查看从当前日期到“周”结束的每个新“周”?一些涵盖2周的简单示例数据对获得适当的答案将非常有帮助。 – thelatemail

回答

1

既然你没有提供一个可重复的例子,我会尝试尽可能简单地解释它。你应该添加一小部分数据集。

“我想选择一个特定的一星期内”

你可以定义你的第一个和最后一个点是本周第一个星期五2017年和周五的例如为:中午。

f1 <- strptime("2017-01-06 12:00", format = "%Y-%m-%d %H:%M", tz = "UTC") # first Friday 2017 
f2 <- strptime("2017-05-12 12:00", format = "%Y-%m-%d %H:%M", tz = "UTC") # this week 

然后生成POSIXt从周五序列至周五

seq <- seq.POSIXt(f1, f2, by = "week") 

“指望有多少鸣叫是当前系统时间之间出版的”

那么你可以使用切放进入垃圾箱的推文(计算你从一个星期五到另一个的数量)例如:

cut(dataset, breaks = seq, labels = 1:length(seq), right = TRUE) 

最后,您需要按分组进行分组并统计发生次数。 这是你想要的吗?希望这可以帮助。