如何将数值转换为日期值

Cur*_* G. 4 r

所以,我有一个名为 Date.birth 的列的 data.frame,但我有数字格式的这些值:

Date.birth
43067
43060
Run Code Online (Sandbox Code Playgroud)

可能是问题格式。但我需要这样的日期格式:

Date.birth
11/28/17
11/21/17
Run Code Online (Sandbox Code Playgroud)

其实上面的格式是正确的。我试过这个命令:

as.Date(levels(data$Date.birth), format="%d.%m.%Y")
Run Code Online (Sandbox Code Playgroud)

但没有用。有人有建议吗?

谢谢。

akr*_*run 6

如果它是一个numeric值,我们需要指定原点

as.Date(data$Date.birth, origin = "1899-12-30")
Run Code Online (Sandbox Code Playgroud)

例如

as.Date(43067, origin = "1899-12-30")
#[1] "2017-11-28"
Run Code Online (Sandbox Code Playgroud)

转换为Dateclass后,如果需要自定义格式,使用format

format(as.Date(43067, origin = "1899-12-30"), "%m/%d/%y")
#[1] "11/28/17"
Run Code Online (Sandbox Code Playgroud)

如果您的列是因子,请先转换为数字

as.Date(as.numeric(as.character(data$Date.birth)), origin = "1899-12-30")
Run Code Online (Sandbox Code Playgroud)