[英]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.