标签: chron

如何将日期转换为最近的周末(周六)

我有一个数据框,日期为"%d-%m-%Y"格式,并有周数.日期是工作日,我希望那个星期的星期六在另一列.

我最初使用Chron包中的函数检查日期是工作日还是周末,但这是布尔验证.我已将日期变量格式化为日期格式,并提取每个日期的周数.

df = data.frame(date=c("2014-08-20", "2014-08-25", "2014-10-08")) 
df$date=as.Date(df$date,format="%Y-%m-%d")
df$week=week(ymd(df$date))
Run Code Online (Sandbox Code Playgroud)

预期结果应该是:

date        week    EOW  
2014-08-20   34   2014-08-23

2014-08-25   34   2014-08-30

2014-10-08   41   2014-10-11
Run Code Online (Sandbox Code Playgroud)

r date weekend lubridate chron

6
推荐指数
1
解决办法
114
查看次数

ggplot2和chron barplot的时间数据scale_x_chron

我有很多次,想要在一个条形图中绘制每次的频率

library(ggplot2)
library(chron)
test <- data.frame(times = c(rep("7:00:00",4), rep("8:00:00",3), 
                         rep("12:00:00",1), rep("13:00:00",5)))
test$times <- times(test$times)
test
      times
1  07:00:00
2  07:00:00
3  07:00:00
4  07:00:00
5  08:00:00
6  08:00:00
7  08:00:00
8  12:00:00
9  13:00:00
10 13:00:00
11 13:00:00
12 13:00:00
13 13:00:00
Run Code Online (Sandbox Code Playgroud)

binwidth选择值代表分钟

p <- ggplot(test, aes(x = times)) + geom_bar(binwidth=1/24/60)
p + scale_x_chron(format="%H:%M")
Run Code Online (Sandbox Code Playgroud)

如您所见,x轴上的刻度加一小时:

在此输入图像描述

我觉得这与时区有关,但我真的不能这样做:

Sys.timezone()
[1] "CET"
Run Code Online (Sandbox Code Playgroud)

编辑:感谢@shadow的评论

更新:

如果我先跑,Sys.setenv(TZ='GMT')它会很完美.问题在于times()功能.我自动设置时区GMT,如果我正在绘制x轴,ggplot会注意到我的系统时区是CET并且在绘图上增加了一个小时.现在如果我将我的系统时区设置为GMT,ggplot不会增加一小时.

time r ggplot2 chron

5
推荐指数
1
解决办法
2019
查看次数

R chron times()函数不起作用

我正试图将时间从午夜转换为秒.我很难从chron包中获取times()函数.这是我使用它的方式:

> library(chron)
> 24 * 24 * 60 * (times(50))
Error in 24 * 24 * 60 * (times(50)) : 
  non-numeric argument to binary operator
> 
>  
> library(chron)
> 24 * 24 * 60  times(5000)
Error: unexpected symbol in "24 * 24 * 60  times"
Run Code Online (Sandbox Code Playgroud)

有什么建议?

更新:

> sessionInfo()
R version 2.14.0 (2011-10-31)
Platform: i386-pc-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices …
Run Code Online (Sandbox Code Playgroud)

r chron

3
推荐指数
1
解决办法
2613
查看次数

将chron转换为GMT格式的POSIXct

通常,我使用chron来表示日期/时间对象.但是,我需要使用一些与POSIX格式一起使用的函数,所以我试图从chron转到POSIXct.使用as.POSIXct()似乎可以工作,但结果是在本地时间而不是GMT(原始数据在GMT中).

x <- chron(dates="05/12/15", times="12:30:45")
as.POSIXct(x, tz="GMT")
"2015-05-12 13:30:45 BST"
Run Code Online (Sandbox Code Playgroud)

我想要的是:

"2015-05-12 12:30:45 GMT"
Run Code Online (Sandbox Code Playgroud)

但我找不到获得它的方法.

strptime()将无法工作,因为原始输入不是字符串,而是chron对象.当然,我可以从一个chron对象转到一个字符串,然后转到POSIXct,但这似乎有点令人费解.

我想我可以强制我的R会话使用GMT和Sys.timezone(),但我不愿意.还有其他建议吗?谢谢.

r posixct chron

1
推荐指数
1
解决办法
430
查看次数

在R中将小时和分钟添加到24小时时间

m trying to find a way to create a column of the hours of arrival of different individuals from 18:30, by adding the hours and minutes to 18:30, but it doesn工作,每次我尝试将我想要添加的小时和分钟的列格式从“因子”转换为时间格式(例如 chron 或 POSIXct)时,它会添加今天的日期,我想仅添加小时和分钟,而不考虑日期。

例如,我想将 03:38 小时添加到 18:30,即 22:08。因此,我想找到一种方法来创建一个包含所有最后时间(每个人到达的时间)的专栏。另一个示例是将 00:47 小时添加到 18:30,即 19:17。

我尝试将小时+分钟转换为数字格式,然后将其添加到 18.5(即 18:30,只是数字格式),然后我到达了最后几个小时,但它们是数字格式,并且我希望它们以小时为单位。例如:

我将 3.6425980(即 03:38)添加到 18.5(即 18:30),最后一个小时是 22.14260(即 22:08),但我不知道如何将 22.14260 转换为 22:08。我需要对大量数据执行此操作,因此我需要一个执行上述操作之一的代码。

有人能帮我吗?

谢谢!

datetime r chron

1
推荐指数
1
解决办法
4040
查看次数

标签 统计

chron ×5

r ×5

date ×1

datetime ×1

ggplot2 ×1

lubridate ×1

posixct ×1

time ×1

weekend ×1