我有一个数据库,其中包含多列日期作为字符类。我想在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.
(并且,不方便的是,清除列中的所有数据。)
答案 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]