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

时间:2012-07-23 15:14:29

标签: r datetime time-series

  

可能重复:
  how to convert y%m%d%H format into “%Y%m%d %H:%M:%S” in time series data

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

1 个答案:

答案 0 :(得分:5)

这很容易。我将假设您的日期目前存储为字符串,如变量x

x <- "000101"

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

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

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

format(xd, "%Y%m%d")
[1] "20000101"

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

(myx <- format(xd, "%Y%m%d"))
[1] "20000101"

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

xd + 10
[1] "2000-01-11"
xd - 10
[1] "1999-12-22"

myx - 10
Error in myx - 10 : non-numeric argument to binary operator