如何将日期格式转换为R中的%y%m%d到%Y%m%d

use*_*175 -5 datetime r time-series

可能重复:
如何将y%m%d%H格式转换为时间序列数据中的"%Y%m%d%H:%M:%S"

如何在R数据帧中将日期格式转换为%y%m%d(000101 = 20000101)到%Y%m%d(20000101)(

Jos*_*hua 5

这很容易.我将假设当前,您的日期存储为字符串,就像变量一样x.

x <- "000101"
Run Code Online (Sandbox Code Playgroud)

首先,您可以将其转换为日期类.完成后,R将日期存储为原点后的天数.这意味着它真的是数字下面.但是,特殊的打印和显示方法在打印时显示的输出比基础数字更漂亮.通过添加()以下内容转换为日期并强制打印:

(xd <- as.Date(x, format = "%y%m%d"))
[1] "2000-01-01"
Run Code Online (Sandbox Code Playgroud)

现在,如果您想要显示一些非默认方式(例如%Y%m%d),您可以要求R以这种方式格式化它.

format(xd, "%Y%m%d")
[1] "20000101"
Run Code Online (Sandbox Code Playgroud)

如果您愿意,可以将结果保存回数据框.

(myx <- format(xd, "%Y%m%d"))
[1] "20000101"
Run Code Online (Sandbox Code Playgroud)

请注意,结果将再次是字符(字符串)类,而不是日期类.这意味着(除其他外)你不能再加或减等.例如:

xd + 10
[1] "2000-01-11"
xd - 10
[1] "1999-12-22"
Run Code Online (Sandbox Code Playgroud)

myx - 10
Error in myx - 10 : non-numeric argument to binary operator
Run Code Online (Sandbox Code Playgroud)