标签: lubridate

在 R 中将日和月转换为年份数 (1 - 365)

假设我有一个包含两列的数据框,一列代表几个月,第二列代表几天。这是一个简单的例子

month=c(2, 4, ,7, 8, 11, 11, 12)
day=c(21,4,6,8,15,20,30)
monthday=data.frame(month,day)
Run Code Online (Sandbox Code Playgroud)

我想确定一个与一年中的某一天相对应的数字(从 1 到 365)。我怎样才能做到这一点?

datetime r date lubridate

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

R使用带有data.table的lubridate来匹配日期

以下代码失败

a = data.table(date=seq(ymd('2001-6-30'),ymd('2003-6-30'),by='weeks'))
a = a[,list(date=date,a=rnorm(105),b=rnorm(105))]

b = seq(ymd('2001-6-30'),ymd('2001-07-28'),by='weeks')

a[date %in% b]
Run Code Online (Sandbox Code Playgroud)

随着消息

Empty data.table (0 rows) of 3 cols: date,a,b
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助确定我做错了什么.它应该找到数据.

r lubridate data.table

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

将“2015M01”形式的变量转换为R中的日期格式?

我有一个日期框架df,看起来像这样:

 month  values
2012M01  99904
2012M02  99616
2012M03  99530
2012M04  99500
2012M05  99380
2012M06  99103
2013M01  98533
2013M02  97600
2013M03  96431
2013M04  95369
2013M05  94527
2013M06  93783
Run Code Online (Sandbox Code Playgroud)

月份以“M01”、“M02”...等形式书写。现在我想将此列转换为日期格式,有没有办法在 R 中使用 lubridate 来完成此操作?

我还想选择包含每年某个月份的列,例如这些年中仅包含三月的列,最好的方法是什么?

r lubridate

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

如何使用lubridate计算R中的时差

我有两列包含时间值,我想插入第三列来计算其他两列中时间之间的时差。我的结果不断出错。请帮忙!以下是样本数据集

TOC         ORD
00:11:02    00:12:48
00:11:36    00:18:39
00:16:48    00:19:33
00:18:31    00:26:31
00:25:17    00:28:43
00:29:24    00:34:49
00:31:25    00:36:35
00:35:54    00:55:09
00:39:35    00:41:43
00:47:07    01:17:44
01:05:11    01:10:34
01:07:27    01:23:45
01:38:38    01:40:27
Run Code Online (Sandbox Code Playgroud)

数据 画面

数据

library(lubridate)
CR_Date1 <- with(CR_Date, difftime(as.numeric(EXP_DAFB2012$TOC, 
EXP_DAFB2012$ORD)))
CR_Date1
Run Code Online (Sandbox Code Playgroud)

R的输出

Error in as.POSIXct.numeric(time1) : 'origin' must be supplied

In as.POSIXct(time1) : NAs introduced by coercion
In addition: Warning message:
  as.difftime.EXP_DAFB2012.TOC..EXP_DAFB2012.ORD..4
1                                               NA secs
2                                               NA secs
3                                               NA secs
4                                               NA secs
5                                               NA secs
6                                               NA secs
7                                               NA …
Run Code Online (Sandbox Code Playgroud)

r lubridate

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

R 中最近的月末

您好,我想找到 R 中日期列的最近月末。

有什么有效的方法可以做到这一点吗?

dt<-data.frame(orig_dt=as.Date(c("1997-04-01",
      "1997-06-29"
)))


dt<-dt %>% mutate(modified_dt="Nearest_month_end_date")
Run Code Online (Sandbox Code Playgroud)

即 1997-04-01 应更改为 1997-03-31,1997-06-29 应更改为 1997-06-30。

r lubridate dplyr

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

从军用时间转换为标准时间,表示 AM/PM,使用 Lubridate 包

我正在尝试将作为数据框一部分的列从军事时间转换为标准时间。我还想指出 AM/PM。我试图在 R 的 lubridate 包的能力范围内做到这一点。

从另一个名为“df”的数据框我创建了一个名为“out”的新数据框,代码如下:

out <- df %>% mutate(NewDate = parse_date_time(CreatedDate, orders = "mdy IMS p")) %>%
  select(CreatedDate, NewDate) 
Run Code Online (Sandbox Code Playgroud)

我使用 mutate 函数操作的“df”列(称为“CreatedDate”)具有如下所示的单元格:

01/01/2019 02:12:37 PM
01/01/2019 10:37:57 PM
01/02/2014 05:10:35 AM
Run Code Online (Sandbox Code Playgroud)

我操纵了该列以生成名为“NewDate”的新列,如下所示:

2018-04-12 11:11:26
2018-11-13 13:06:56
2018-04-16 05:30:13
Run Code Online (Sandbox Code Playgroud)

我正在尝试将“NewDate”列标准化,但要定期进行并包含 AM/PM 指定,就像在应用 parse_date_time 函数之前所做的那样。

我预计,通过在我的parse_date_time函数中包含“mdy IMS p” ,我会在我的 NewDate 列中生成如下所示的内容:

2018-04-12 11:11:26 AM
2018-11-13 01:06:56 PM
2018-04-16 05:30:13 AM
Run Code Online (Sandbox Code Playgroud)

r lubridate

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

在 R (dplyr, r) 内分组、获取持续时间和设置条件

我有一个数据集,df:(数据集包含 4000 多行)

  DATEB

  9/9/2019 7:51:58 PM
  9/9/2019 7:51:59 PM
  9/9/2019 7:51:59 PM
  9/9/2019 7:52:00 PM
  9/9/2019 7:52:01 PM
  9/9/2019 7:52:01 PM
  9/9/2019 7:52:02 PM
  9/9/2019 7:52:03 PM
  9/9/2019 7:54:00 PM
  9/9/2019 7:54:02 PM
  9/10/2019 8:00:00PM
Run Code Online (Sandbox Code Playgroud)

如果日期时间之间的时间超过 120 秒,我想将它们放在不同的组中,并获取持续时间。

期望的输出:

Group   Duration

 a       5 sec
 b       2 sec
 c       0 sec




 dput:


  structure(list(DATEB = structure(c(2L, 3L, 3L, 4L, 5L, 5L, 6L, 
  7L, 8L, 9L, 1L), .Label = c("      9/10/2019 8:00:00 PM", "      9/9/2019 7:51:58 PM", 
  "      9/9/2019 7:51:59 PM", " …
Run Code Online (Sandbox Code Playgroud)

r lubridate dplyr

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

R - 在数据框中存储润滑日期的问题

当我尝试在 DF 中存储日期时,它被表示为数字而不是数据格式。这是我的例子。

library(lubridate)

df1 = data.frame(task = c('do somthing', 'do something else', 'do something more')
                 ,Start_date = c(NA, NA, NA))

Start_date = ymd("2023-12-01")
df1$Date_Start[1] = Start_date

Start_date     #this returns a "2023-12-01"
df1$Date_Start[1]  #this returns a 19692
Run Code Online (Sandbox Code Playgroud)

我希望 df1$Date_Start[1] 存储“2023-12-01”

r date lubridate

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

创建日历年的开始和结束日期

我想从日历年变量(此处为 1991 到 2001)创建日历年的开始日期和结束日期,并找到了解决方案:

\n
library(lubridate)\nlibrary(dplyr)\ndf <- tibble(calendar_year = seq(1991, 2001, 1)) \n\ndf |>\n  mutate(\n    calendar_year_start_date = ymd("1991-01-01") + \n      years(calendar_year - 1991),\n    calendar_year_end_date = ymd("1991-12-31") + \n      years(calendar_year - 1991 )\n  )\n
Run Code Online (Sandbox Code Playgroud)\n

结果:

\n
# A tibble: 11 \xc3\x97 3\n   calendar_year calendar_year_start_date calendar_year_end_date\n           <dbl> <date>                   <date>                \n 1          1991 1991-01-01               1991-12-31            \n 2          1992 1992-01-01               1992-12-31            \n 3          1993 1993-01-01               1993-12-31            \n 4          1994 1994-01-01               1994-12-31            \n 5          1995 1995-01-01               1995-12-31            \n 6          1996 1996-01-01               1996-12-31            \n 7 …
Run Code Online (Sandbox Code Playgroud)

posix r date posixct lubridate

0
推荐指数
2
解决办法
66
查看次数

从 R 中的日期时间字段中提取日期和时间

我有一个如下所示的日期集,读取日期采用 POSIXct 格式。我想在 R 的一个字段中提取日期,在另一个字段中提取时间。我试图尽可能避免使用基本 R,所以如果你能做到这一点那就太好了( lubridate )。我希望新提取的字段采用正确的格式,因为我的最终目标是根据已售商品总数 (y) 绘制时间 (x),以确定一天中销售额最高的时间。感谢您的帮助。

我的数据

r lubridate

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

R中如何检查字符串是否为日期时间格式?

编辑:是否可以检查字符串是否采用某种格式,例如“ymd”,“h:m:s”

r lubridate tidyverse

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

将秒转换为分钟

我是 R 新手,请帮助我理解从秒到分钟的转换。

\n

I'm doing a travel time analysis, and I get the result in seconds, which is not convenient for descriptive analysis and subsequent visualizations. There are a lot of calculations in different time sections, here is a small piece:

\n
trip_stats <- cyclistic_df %>%\n  group_by(member_casual) %>% \n  summarise(average_ride_length = round((mean(ride_length), 2),  # average ride length (total ride time / trips)\n            median_ride_length = round(median(ride_length), 2),  # median ride length\n            min_ride_length = round(min(ride_length), 2),  # minimum ride length\n            max_ride_length …
Run Code Online (Sandbox Code Playgroud)

r lubridate

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

标签 统计

lubridate ×12

r ×12

date ×3

dplyr ×2

data.table ×1

datetime ×1

posix ×1

posixct ×1

tidyverse ×1