标签: lubridate

法语名称在lubridate中使用wday

lubridate软件包中带有选项标签= TRUE的wday()函数以英语返回星期几的名称。我想知道是否可以用另一种语言获取星期几的名称。有什么选择吗?

r lubridate

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

在R中添加1个工作日

Date在R中有一个对象,并希望在此日期添加1个工作日.如果结果是假期,我希望将日期增加到下一个非假日日期.我们假设我的意思是纽约证券交易所假期.我怎样才能做到这一点?

例:

mydate = as.Date("2013-12-24")
mydate + 1 #this is a holiday so I want this to roll over to the 26th instead
Run Code Online (Sandbox Code Playgroud)

r date lubridate

5
推荐指数
2
解决办法
4169
查看次数

R时间段重叠

使用R中的"lubridate"包,我可以看出两个时间段是否重叠.但有没有一种有效的方法来计算它们重叠的天数.(例如,女性在怀孕期间吸烟的天数.怀孕期和吸烟期可能完全重叠,部分或完全不重叠)

以下是三位女性的例子:

preg_start<-as.Date(c("2011-01-01","2012-01-01","2013-01-01"))
preg_end<-preg_start+270 # end after 9 months
smoke_start<-as.Date(c("2011-02-01","2012-08-01","2014-01-01"))
smoke_end<-smoke_start+100 # all three smoked 100 days

data<-data.frame(cbind(preg_start,preg_end,smoke_start,smoke_end))
Run Code Online (Sandbox Code Playgroud)

我想添加一个变量,说第一个女人在怀孕期间吸烟100天,第二个吸烟30天,第三个怀孕时不吸烟.

r overlap period lubridate

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

如何在R中求和或平均小时数

为什么sum和average在使用lubridate提取的小时数上不起作用,当使用+和除法的简单加法单独工作时.

数据集

Category   Time1    Time2       hr1        hr2
1        A 0:30:00 24:00:00    30M 0S  24H 0M 0S
2        B 1:00:00 23:23:00  1H 0M 0S 23H 23M 0S
3        C 2:30:00 23:00:59 2H 30M 0S 23H 0M 59S
4        D 3:00:00 45:00:00  3H 0M 0S  45H 0M 0S

> dput(t1)
structure(list(Category = c("A", "B", "C", "D"), Time1 = c("0:30:00", 
"1:00:00", "2:30:00", "3:00:00"), Time2 = c("24:00:00", "23:23:00", 
"23:00:59", "45:00:00"), hr1 = structure(c(0, 0, 0, 0), year = c(0, 
0, 0, 0), month = …
Run Code Online (Sandbox Code Playgroud)

time r hour lubridate

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

从开始和结束时间之间的间隔计算的R组变量

我有一个数据框如下

tmpdf <- data.frame(licensePlate = c("Y80901", "Y80901", "Y80901", "AMG-999", "AMG-999", "W3188", "W3188"),  
starttime= c("2015-09-18 09:55", "2015-09-18 23:00", "2015-09-20 15:00", "2015-09-17 15:42", "2015-09-21 09:22", "2015-09-17 09:00", "2015-09-21 14:00"),
endtime = c("2015-09-18 17:55", "2015-09-20 11:00", "2015-09-21 12:00",  "2015-09-18 13:00",  "2015-09-21 14:22", "2015-09-21 12:00", "2015-09-21 16:00"))
    tmpdf
      licensePlate        starttime          endtime
    1       Y80901 2015-09-18 09:55 2015-09-18 17:55
    2       Y80901 2015-09-18 23:00 2015-09-20 11:00
    3       Y80901 2015-09-20 15:00 2015-09-21 12:00
    4      AMG-999 2015-09-17 15:42 2015-09-18 13:00
    5      AMG-999 2015-09-21 09:22 2015-09-21 14:22
    6        W3188 2015-09-17 …
Run Code Online (Sandbox Code Playgroud)

r lubridate dplyr data.table

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

R Lubridate在给定两位数年份时返回不需要的世纪

R中,我有一个字符串向量,表示两种不同格式的日期:

  1. "月日年"
  2. "月日年"

第一种格式有两位数的年份,所以我的矢量看起来像这样:

c("3/18/75", "March 10, 1994", "10/1/80", "June 15, 1979",...)
Run Code Online (Sandbox Code Playgroud)

我想以标准格式将日期放在向量中.使用包中的mdy函数应该很容易lubridate,除非我以第一种格式传递它,它返回一个不需要的世纪.

mdy("3/18/75") 回报 "2075-03-18 UTC"

有谁知道它如何能够回归20世纪的日期?那是"1975-03-18 UTC".任何其他如何标准化日期的解决方案也将非常受欢迎.

如果重要的话,我正在运行版本lubridate_1.3.3.

datetime r date lubridate

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

检查日期是否在R的间隔内

我定义了这三个区间:

YEAR_1  <- interval(ymd('2002-09-01'), ymd('2003-08-31'))
YEAR_2  <- interval(ymd('2003-09-01'), ymd('2004-08-31')) 
YEAR_3  <- interval(ymd('2004-09-01'), ymd('2005-08-31'))
Run Code Online (Sandbox Code Playgroud)

(在现实生活中,我有50个)

我有一个数据df框(称为),其中一列充满了rubridate格式的日期.

我想添加一个df具有适当值的新列YEAR_n,具体取决于日期所在的时间间隔.

就像是:

df$YR <- ifelse(df$DATE %within% YEAR_1, 1, NA)
Run Code Online (Sandbox Code Playgroud)

但我不知道该怎么办.我需要以某种方式使用apply我认为?

这是我的数据帧:

structure(c(1055289600, 1092182400, 1086220800, 1074556800, 1109289600, 
1041897600, 1069200000, 1047427200, 1072656000, 1048636800, 1092873600, 
1090195200, 1051574400, 1052179200, 1130371200, 1242777600, 1140652800, 
1137974400, 1045526400, 1111104000, 1073952000, 1052870400, 1087948800, 
1053993600, 1039564800, 1141603200, 1074038400, 1105315200, 1060560000, 
1072051200, 1046217600, 1107129600, 1088553600, 1071619200, 1115596800, 
1050364800, 1147046400, 1083628800, 1056412800, 1159747200, 1087257600, 
1201478400, 1120521600, 1066176000, 1034553600, 1057622400, …
Run Code Online (Sandbox Code Playgroud)

r lubridate

5
推荐指数
3
解决办法
9405
查看次数

Tibbles拒绝了lubridate的持续时间和期间对象

有效的代码:durationperiod对象

以下代码分别成功生成了一个duration对象和一个period对象.

> lubridate::as.duration(1)
[1] "1s"

> lubridate::seconds(1)
[1] "1S"
Run Code Online (Sandbox Code Playgroud)

不起作用的代码:duration和s中的period对象tibble

但是,当我尝试tibble使用一个duration或一个period对象创建s时,我得到无法提供信息的错误消息.

> tibble::tibble(y = lubridate::as.duration(1))
Error: Incompatible duration classes (Duration, numeric). Please coerce with `as.duration`.

> tibble::tibble(y = lubridate::seconds(1))
Error in x < 0 : cannot compare Period to Duration:
coerce with 'as.numeric' first.
Run Code Online (Sandbox Code Playgroud)

有效的代码:duration和s中的period对象data.frame

更换tibble::tibblebase::data.frame作品.

> data.frame(y = lubridate::as.duration(1))
   y …
Run Code Online (Sandbox Code Playgroud)

r lubridate tibble

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

反转ggplot时间刻度

我正在创建一个时间表图,以显示每个时间块中有多少事件.我已经从lubridate计算了所有这些信息,并且可以在ggplot上绘制它.但我需要反转/翻转轴,以便顶部显示早上8点,然后下午5点而不是下午5点到早上8点.

这就是我目前最终结果的片段.只需要颠倒时间顺序就可以完美.这延长了上午8点至下午5点和MF.

在此输入图像描述

我尝试使用scale_y_reverse,但这不起作用.

我看到这篇文章,但我无法弄清楚如何在我的情况下使用它:ggplot中的反向日期时间(POSIXct数据)轴

示例数据(使用dput fn创建):

df <- structure(list(ID = c(4108L, 4165L, 1504L, 2570L, 1523L, 2556L, 
3224L, 1503L, 3220L, 837L), START_TIME = structure(c(1504267200, 
1504281600, 1504258200, 1504278000, 1504263600, 1504256400, 1504258200, 
1504274400, 1504258200, 1504256400), class = c("POSIXct", "POSIXt"
), tzone = "UTC"), END_TIME = structure(c(1504270799, 1504285199, 
1504263599, 1504281599, 1504268999, 1504259999, 1504263599, 1504279799, 
1504263599, 1504259999), class = c("POSIXct", "POSIXt"), tzone = "UTC"), 
    Day = structure(c(5L, 5L, 2L, 3L, 2L, 3L, 4L, 2L, 4L, 1L), .Label = c("M", 
    "T", "W", "R", "F"), class …
Run Code Online (Sandbox Code Playgroud)

datetime r ggplot2 lubridate

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

解析复杂的日期列

我有一个日期列,其中包含民意调查发生的日期.

这些民意调查偶尔会持续数天(通常但并非总是连续),民意调查有时会在一个月内开始,然后在下一个阶段结束,而且这一年有时会被输入YY,其他时间则被输入为YYYY.

在有日期范围的情况下,通常使用 - ,但有时 - 已经分开,有时在某个范围内的日期之间有空格.

我需要使用start_date和end_date列将其清除为一致的日期格式.如果民意调查发生在一天,那么end_date列应该是NA或填充开始日期(如果你有一个解决方案,我可以随时在那里工作,如果需要的话).如果存在非连续日期范围,则可以丢弃最早的日期和最新日期以及中间停止和重新启动.

因为格式是如此恼人地不一致我提供了完整的数据,因为任何解决方案都需要在日期集中的所有日期工作(或者对其中一些日期工作而不是打破其他日期以便我们可以迭代地解决问题).

dates <- c("12-15 Feb 2019", "6–11 Feb 2019", "7–10 Feb 2019", "23–30 Jan 2019", 
"24–27 Jan 2019", "9–13 Jan 2019", "13-16 Dec 2018", "13–15 Dec 2018", 
"6–9 Dec 2018", "29 Nov – 2 Dec 2018", "23–25 Nov 2018", "15-18 Nov 2018", 
"15–17 Nov 2018", "8–11 Nov 2018", "1–4 Nov 2018", "25–28 Oct 2018", 
"19–21 Oct 2018", "10–13 Oct 2018", "10–13 Oct 2018", "5–7 Oct 2018", 
"22–24 Sep 2018", "20–23 Sep 2018", …
Run Code Online (Sandbox Code Playgroud)

r date lubridate

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

标签 统计

lubridate ×10

r ×10

date ×3

datetime ×2

data.table ×1

dplyr ×1

ggplot2 ×1

hour ×1

overlap ×1

period ×1

tibble ×1

time ×1