如何使用lubridate在R中将多列转换为日期格式?

时间:2016-03-31 17:52:03

标签: r lubridate

我有一个数据库,其中包含多列日期作为字符类。我想在R中使用lubridate包来一次转换它们。我没有解析日期格式,但在多列上应用lubridate。有什么建议吗?

crimes.df <- data.frame(offense.date = c('06102003', '05122006'), charge.date = c('07152003', '10012010'))

我试过了

crimes.df[,1:2]<-mdy(crimes.df[,1:2])

crimes.df[,1:2]<-lapply(crimes.df[,1:2], function(x) mdy(crimes.df[,1:2]))

都返回此错误:

Warning message:
All formats failed to parse. No formats found. 

(并且,不方便的是,清除列中的所有数据。)

1 个答案:

答案 0 :(得分:3)

使用lapply,我们循环数据集的列,并在每个mdy上应用函数column

crimes.df[] <- lapply(crimes.df, mdy)

在OP的代码中,如果我们调用匿名函数(function(x)),那么函数(mdy)应该应用于'x'

crimes.df[] <- lapply(crimes.df, function(x) mdy(x))

另请注意,由于只有2列,因此我们无需指定crimes.df[,1:2]