不知怎的,R中導入數據後,它給未知格式的日期,如轉換爲日期格式中的R
2016年12月1日 2012-01-01
我試圖轉換從未知的格式到正常的日期格式現在幾個小時,但似乎在R是不可能的。請幫助,我如何從未知格式轉換爲日期格式?
不知怎的,R中導入數據後,它給未知格式的日期,如轉換爲日期格式中的R
2016年12月1日 2012-01-01
我試圖轉換從未知的格式到正常的日期格式現在幾個小時,但似乎在R是不可能的。請幫助,我如何從未知格式轉換爲日期格式?
我假設你有一個特徵向量:
d <- c("2016-12-01", "2012-01-01")
如果這是你可以做的情況:
d2 <- as.Date(d, format = '%Y-%m-%d')
# or format = '%Y-%d-%m' if that's the case
#> [1] "2016-12-01" "2012-01-01"
或者:
d3 <- as.POSIXct(d, format = '%Y-%m-%d')
#> [1] "2016-12-01 CET" "2012-01-01 CET"
或者乾脆讓anytime
包帶頭痛:
library(anytime)
d4 <- anytime(d, tz = 'CET')
#> [1] "2016-12-01 CET" "2012-01-01 CET"
鑑於您使用了rstudio
標記,我假定您可能已使用RStudio的「導入數據集」功能。如果是這種情況,則可以在設置導入時指定列包含日期。只需點擊小箭頭旁邊的列標題,就會看到一列變量類型,其中一個是Date
。如果你選擇,你會被提示輸入日期格式的字符串,看你的日期,可能是%Y-%m-%d
(但這是你需要檢查的東西)。
是的,這是我做的,但是在我選擇日期類型並設置格式%Y-%m-%d後,它顯示所有值都不適用,所以我想它不會識別我的數據。然後,我決定默認使用初始給定的數據類型「unknown」,並使用3周前設置的代碼將其更改爲日期,但我沒有保存我使用的代碼。 – user3672160
該列最可能包含具有該格式字符串日期以外的行的行。 – neilfws
它也包含空格。好吧,現在我設置了字符類型,它將我的日期從2016-12-01修改爲2016-12-01T00:00:00。我想現在我應該可以用它做點什麼嗎? – user3672160
你是什麼意思的未知格式。如果你不知道月份的一天的順序,這是不可能的。例如,你不能決定2012-11-11意味着什麼,或者更糟糕的是12-11-11意味着所有數字在幾個月和幾年內都是有效的。如果它們始終以相同的順序並具有相同的分隔字符,則可以使用'as.Date' – OganM
從SAS導入的數據中,其日期格式爲2012-12-01,2012-01-01,2012 -10-02等,但R無法識別它,而不是給日期格式給這些日期的未知格式。那麼我如何將未知格式轉換爲日期格式呢? – user3672160
仍然不知道你的意思是「未知格式」。我覺得你正在談論一個角色矢量,如果是這樣的話,下面的答案將解決它。 – OganM