簡體   English   中英

將 R fread 中的字符日期轉換為顯示四位數年份格式

[英]Convert character date in R fread to show four digit year format

我有一個 csv 文件,它顯示日期為 14-Mar-20 。 它是一種日期-月-年格式。 但在后台顯示為 3/14/2020。

當我嘗試將這個文件 fread 到 R 時,它作為字符格式 14-Mar-20.I 將其轉換為日期 as.Date(x, format("%d-%h-%Y)。

問題是,在 R 中,日期將年份顯示為“20”(兩位數)。 我想將數據作為四位數年份讀入 R。我不想添加字符串 20 使其成為 2020 年,因為也可以有像 1948 年這樣的年份。沒有多少格式有助於年份為 %Y。

有沒有一種方法可以讀取 csv 文件,使得日期為 14/Mar/2020 或在 R 中的一種方法,可以將年份變成四位數字而無需將 20 字符串添加到年份?

Sample Data

c("12-Dec-14", "19-Dec-14", "12-Dec-14", "19-Dec-14", "12-Dec-14", 
"26-Dec-14")

Expected Output:

12-12-2014, 19-Dec-2014....

Note: In csv file it is stores as 12/12/2014 but formatted to show as 12-Dec-14. So when I pull the data in R it comes as 12-Dec-14

也許這會有所幫助

> strftime(as.Date(d,format = "%d-%b-%y"),format = "%d-%b-%Y")
[1] "12-Dec-2014" "19-Dec-2014" "12-Dec-2014" "19-Dec-2014" "12-Dec-2014"
[6] "26-Dec-2014"

數據

d <- c("12-Dec-14", "19-Dec-14", "12-Dec-14", "19-Dec-14", "12-Dec-14", 
"26-Dec-14")

您想使用 %y。

strptime()的文檔中:

沒有世紀的年份 (00-99)。 在輸入時,值 00 到 68 以 20 為前綴,69 到 99 以 19 為前綴——這是 2018 POSIX 標准指定的行為,但它也說“預計在未來版本中,默認世紀是從 2 -數字年份會改變'。

您可以使用as.Date將日期轉換為日期類。

x <- c("12-Dec-14", "19-Dec-14", "12-Dec-14", "19-Dec-14", "12-Dec-14",  "26-Dec-14")
x1 <- as.Date(x, '%d-%b-%y')
x1
#[1] "2014-12-12" "2014-12-19" "2014-12-12" "2014-12-19" "2014-12-12" "2014-12-26"

如果您想要特定格式的數據,請使用日期值的format

x2 <- format(x1, '%d-%b-%Y')
x2
#[1] "12-Dec-2014" "19-Dec-2014" "12-Dec-2014" "19-Dec-2014" "12-Dec-2014" "26-Dec-2014"

暫無
暫無

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

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