首页 > 解决方案 > R:将所有日期移至一周

问题描述

我认为到目前为止还没有这样的问题,所有相关的都不能解决我的问题。

我所拥有的:FB 对话数据,每条消息都有一个时间戳

我想要什么:根据一周中的时间绘制字符数(星期一 14:00 - 356 个字符,依此类推)

到目前为止我发现了什么:为了利用所有花哨的绘图功能,我应该坚持使用 POSIX 时间。所以我尝试将我的时间转换为数字,减去一个参考星期一,模 7,然后再将其转换回来。

dat$zeitpunkt =  strptime(dat$zeitpunkt, "%Y-%m-%d %H:%M") # Convert date from string to date
dat$wday = 
    as.POSIXct(
    as.numeric(dat$zeitpunkt - as.POSIXct("01-02-10 00:00",format="%d-%m-%y %H:%M")) %% 7,
    origin = "2010-02-01")

weekdays(dat$zeitpunkt[1]) # returns "Mittwoch"
weekdays(dat$wday[1])      # returns "Montag"

我知道我可以在再次获得星期三之前调整参考,但为什么会发生这种情况?有没有更简单的解决方案?

提前致谢!

编辑:刚刚注意到时间也搞砸了:

strftime(dat$wday[1])      # "2010-02-03 01:00:02"
strftime(dat$zeitpunkt[1]) # "2012-11-28 00:50:00"

在这里我真的不知道发生了什么:/

编辑2:我想要这样的东西,只要一周中的正确日期和时间,从星期一 00:00 开始(或稍后 5:00,但那是另一回事) 在此处输入图像描述

标签: rposixctweekday

解决方案


抱歉,我认为模 7 很愚蠢...应该是 60*24*7,因为数字以秒为单位...

我认为你很接近,但它应该是… %% 7 * 24*60*60

(但是,我看不到您从中获得了什么。)


推荐阅读