如何在 R 数据帧中将日期格式从 %y%m%d(000101=20000101) 转换为 %Y%m%d(20000101) (
问问题
3513 次
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 回答