【问题标题】:Time in the week without specific date in R [closed]R中没有特定日期的一周中的时间[关闭]
【发布时间】:2017-05-10 21:24:21
【问题描述】:

我有一个 POSIX 时间戳列表(推文数据集)。我想选择一个特定的为期一周的时间段(周五中午 - 周五中午),并计算在当前系统时间(例如,周三,下午 16 点)和该时间段结束之间发布了多少推文。

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

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

有没有办法将我的数据转换为与日期无关的格式,该格式将在星期五中午开始和结束,并且只在指定的时间和工作日结束?

谢谢!

【问题讨论】:

  • 很抱歉,但不清楚您想要做什么。您是否正在尝试重新定义“周”,使其从周五中午而不是周日午夜开始?然后查看从当前日期到“周”结束的每个新“周”?一些涵盖 2 周的简单示例数据将非常有助于获得适当的答案。

标签: r twitter time posixct


【解决方案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 将推文放入垃圾箱(计算您从一个星期五到另一个星期五收到了多少条)例如:

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

最后,您需要按 bin 分组并计算出现次数。 这是你想要的吗?希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多