首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tidyverse日期字符串

Tidyverse日期字符串
EN

Stack Overflow用户
提问于 2018-09-10 17:48:52
回答 1查看 1.3K关注 0票数 3

我在一个数据框架中有一个“日期”列,在日期之后有一个空格。我想要FIND的空格,然后转到LEFT的位置减去1点,并将字符串转换为日期。这是一个有代表性的例子:

代码语言:javascript
复制
library(tidyverse)
library(lubridate)

my_sales <- c(10, 15, 20, 15)
my_dates <- c("12/30/02 0:00", "1/4/03 0:00", "1/11/03 0:00", "1/19/03 0:00")
df <- data.frame(my_sales, my_dates)
df$my_dates <- as.character(df$my_dates)

df$my_dates_temp1 <- str_sub(df$my_dates, 1, str_locate(df$my_dates, ' ')[, 1]-1)
head(df)

>   my_sales      my_dates my_dates_temp1
> 1       10 12/30/02 0:00       12/30/02
> 2       15   1/4/03 0:00         1/4/03
> 3       20  1/11/03 0:00        1/11/03
> 4       15  1/19/03 0:00        1/19/03

我的问题是当我试图将my_dates_temp1转换为约会时。

基R

代码语言:javascript
复制
as.Date(df$my_dates_temp1)
> Error in charToDate(x) : 
>   character string is not in a standard unambiguous format

流苏酸盐

代码语言:javascript
复制
lubridate::as_date(df$my_dates_temp1)
> [1] NA NA NA NA
> Warning message:
> All formats failed to parse. No formats found. 

这怎么不是一种可以转换成日期的格式,我怎么能转换它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-10 17:50:15

我们需要format,因为它不是"YYYY-MM-DD"的默认格式

代码语言:javascript
复制
as.Date(df$my_dates_temp1, "%m/%d/%y")
#[1] "2002-12-30" "2003-01-04" "2003-01-11" "2003-01-19"

或使用

代码语言:javascript
复制
lubridate::mdy(df$my_dates_temp1)
#[1] "2002-12-30" "2003-01-04" "2003-01-11" "2003-01-19"
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52263001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档