【问题标题】:Extracting time intervals提取时间间隔
【发布时间】:2018-08-26 16:34:39
【问题描述】:

我有一个包含 1000 名学生的列表,他们的考试成绩分布在几天内。在数据集中,一列包括他们以 ymd-hms 格式参加测试的时间和日期,例如“20170216-192809”。我想比较早上参加考试的学生和下午和晚上参加考试的学生的平均成绩。我如何区分那些在 12:00:00 - 23:59:59 之间参加考试的人和那些在 00:00:00 - 11:59:59 之间参加考试的人,以便我可以比较它们?

【问题讨论】:

  • 您能简单介绍一下您目前所做的尝试吗? StackOverflow 问题预计会显示一些研究工作的证据(即在发布之前告诉我们您是如何尝试解决自己的问题的)。 (顺便说一句,您当前的用户名可能不会激发专用 R 用户的太多合作......)
  • 感谢 Ben Bolker,我已经成功解决了。我将对其进行编辑以显示我所做的。而且 DooDoo 对我来说是件好事。
  • 请不要编辑您的问题以包含答案;相反,发布您的问题的答案。

标签: r time intervals


【解决方案1】:
library(tidyr)
d<-data.frame(time=c("20170216-192809","20170216-112530"))
d<-separate(d,time,into=c("date","time"),sep="-")
d$morning<-as.numeric(d$time)<120000

result 会为您提供一个名为 Morning 的列,该列表示早上为 TRUE,晚上为 FALSE。为了比较手段,你可以做类似的事情

mean(d[d$morning,"score"])
mean(d[!d$morning,"score"])

(您显然需要为此设置一个“分数”列...)

【讨论】:

    猜你喜欢
    • 2014-03-11
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多