转换因子日期2017年1月1日至2017年1月1日

时间:2018-05-25 23:22:04

标签: r

我的列currentdate包含类因子中的日期,格式为1/1/2017。我想把日期转换成2017-01。我的下面的代码给出了错误:

代码:

data$NewDate <- format(as.Date(data$currentdate), "%Y-%m")

错误:

  

charToDate(x)出错:字符串不在标准中   明确的格式

我该如何解决?

2 个答案:

答案 0 :(得分:0)

您的数据$ currentdate可能不是明确的格式,需要在as.Date()中指定。

这样的事情:

format(as.Date("01/01/2017", format="%m/%d/%Y"), "%Y-%m")

答案 1 :(得分:0)

您需要在as.Date()中指定日期格式,因为如果日期/月/年或月/日/年它不能用数字来猜测:

dates <- c('1/1/2017', '12/1/2017', '1/10/2017', '11/10/2017')

format(as.Date(dates, '%d/%m/%Y'), '%Y-%m')

如果您需要将值存储为日期/时间,请使用POSIXct类:

newdates <- as.POSIXct(dates, format = '%d/%m/%Y')

然后在显示数据时指定格式:

format(newdates, '%Y-%m')