-5

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

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

4

1 回答 1

6

这相当容易。我将假设目前,您的日期存储为字符串,如变量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
于 2012-07-23T15:22:48.493 回答