在 R 中将数字数据变量更改为日期格式以合并两个数据集
changing numeric data variable into date format in R to merge two datasets
我正在尝试合并两个数据集,其中 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 包。
例如
lubridate::ymd('20130131')
lubridate::ymd(20130131)
lubridate::ymd(dataset2$date)
日期格式可以用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"
我正在尝试合并两个数据集,其中 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 包。
例如
lubridate::ymd('20130131')
lubridate::ymd(20130131)
lubridate::ymd(dataset2$date)
日期格式可以用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"