簡體   English   中英

如何將數字值轉換為日期值

[英]How to convert a numeric value into a Date value

因此,我有一個data.frame,其中包含名為Date.birth的列,但是這些值具有數字格式:

Date.birth
43067
43060

可能是問題格式。 但我需要這樣的日期格式:

Date.birth
11/28/17
11/21/17

實際上以上格式是正確的。 我嘗試了以下命令:

as.Date(levels(data$Date.birth), format="%d.%m.%Y")

但是沒有用 有人有建議嗎?

謝謝。

如果是numeric值,我們需要指定原點

as.Date(data$Date.birth, origin = "1899-12-30")

例如

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

轉換為Date類后,如果需要使用自定義格式,請使用format

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

如果您的列是因數,請先轉換為數字

as.Date(as.numeric(as.character(data$Date.birth)), origin = "1899-12-30")

如果這是一個Excel數字日期,則janitor有一個很好的解決方案:

library(janitor)

excel_numeric_to_date(data$Date.birth)

只需使用lubridate即可完成-

lubridate::as_date(as.numeric(dt$Date.birth),origin="1899-12-30")  
[1] "2017-11-28" "2017-11-21"

樣本數據-

dt <- read.table(text="Date.birth
43067
43060",header=T)

嘗試這個

VariableName <- dt %>% 
mutate(Date.birth = format(excel_numeric_to_date(as.numeric(Date.birth)),"%m/%d/%y"))
#[1] "11/28/17"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM