问题描述
我正在尝试合并两个数据集,其中date
和id
变量是两个常见的标识符。
在一个数据集中,date
变量为character
类型,看起来像这样:'31jan2013'
。因此,我们使用了as.Date
函数将其更改为日期格式(as.Date(dataset1$date,format = "%d%b%Y")
创建了一个新的日期列,该列显示了如下日期:'2013-01-31'
。
当我们想从第二个数据集中更改另一个日期变量时,就会出现问题。在dataset2
中,date
变量具有numeric
性质,看起来像这样:'20130131'
。我们再次尝试使用as.Date
函数(as.Date.numeric(dataset2$date["datadate"],"%Y%m%d")
,但出现此错误:
**Error in charToDate(x) :
character string is not in a standard unambiguous format**
我们非常感谢您的帮助!
解决方法
一个简单的解决方案是使用lubridate软件包。
例如
hash
,
可以使用format
参数指定日期格式。
as.Date('20130131',format = "%Y%m%d")
[1] "2013-01-31"
如果数据为数字
as.Date(as.character(20130131),format = "%Y%m%d")
[1] "2013-01-31"