将文本更改为R中的日期格式

时间:2018-07-09 08:14:14

标签: r date

我正在尝试从格式为“ mm / dd / yyyy”的一列文本中提取日期。

> head(X$A1)
[1]            
2456 Levels:   1/1/2007 1/1/2008 1/1/2009 1/1/2012 1/10/2005 1/10/2006 1/10/2007 ... 9/9/2016

然后我使用as.date提取日期中带小数位的年份。但是,它返回NA ...

> X$dates <- as.Date(X$A1, "%m/%d/%Y")

> head(X$dates)
[1] NA NA NA NA NA NA

如何获取以小数点表示的日期的日期?谢谢!

2 个答案:

答案 0 :(得分:1)

您尝试过吗:

X$dates <- as.Date(as.character(X$A1), "%m/%d/%Y")

答案 1 :(得分:0)

我假设您在问如何将日期转换为年份的十进制。

我们可以为此使用lubridate::decimal_date

# Sample data
date <- c("1/1/2007 1/1/2008 1/1/2009 1/1/2012 1/10/2005 1/10/2006 1/10/2007")
date <- unlist(strsplit(date, " "))
date
#[1] "1/1/2007"  "1/1/2008"  "1/1/2009"  "1/1/2012"  "1/10/2005" "1/10/2006"
#[7] "1/10/2007"

# Convert to decimal dates
lubridate::decimal_date(as.Date(date, format = "%m/%d/%Y"))
#[1] 2007.000 2008.000 2009.000 2012.000 2005.025 2006.025 2007.025