將具有混合日期格式的變量轉(zhuǎn)換為一種格式我的數(shù)據(jù)幀的示例: date1 25 February 19872 20 August 19743 9 October 19844 18 August 19925 19 September 19956 16-Oct-637 30-Sep-658 22 Jan 20089 13-11-196110 18 August 198711 15-Sep-7012 5 October 199413 5 December 198414 03/23/8715 30 August 198816 26-10-199317 22 August 198918 13-Sep-97我有一個(gè)大型數(shù)據(jù)框,其日期變量有多種日期格式。變量中的大多數(shù)格式如上所示 - 還有一些非常罕見的其他格式。有多種格式的原因是數(shù)據(jù)是從各種網(wǎng)站中提取的,每個(gè)網(wǎng)站都使用不同的格式。我嘗試過使用簡單的轉(zhuǎn)換,例如strftime(mydf$date,"%d/%m/%Y")但如果有多種格式,這些轉(zhuǎn)換將無效。我不想求助于多個(gè)gsub類型的編輯。我想知道我是否錯(cuò)過了一個(gè)更簡單的解決方案?代碼例如: structure(list(date = structure(c(12L, 8L, 18L, 6L, 7L, 4L, 14L, 10L, 1L, 5L, 3L, 17L, 16L, 11L, 15L, 13L, 9L, 2L), .Label = c("13-11-1961", "13-Sep-97", "15-Sep-70", "16-Oct-63", "18 August 1987", "18 August 1992", "19 September 1995", "20 August 1974", "22 August 1989", "22 Jan 2008", "03/23/87", "25 February 1987", "26-10-1993", "30-Sep-65", "30 August 1988", "5 December 1984", "5 October 1994", "9 October 1984"), class = "factor")), .Names = "date", row.names = c(NA, -18L), class = "data.frame")
3 回答

炎炎設(shè)計(jì)
TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以嘗試parse_date_time
在包裝lubridate
其“允許用戶指定幾個(gè)格式,訂單處理異構(gòu)日期時(shí)間的字符表示”使用orders
的說法。就像是...
library(lubridate)parse_date_time(x = df$date, orders = c("d m y", "d B Y", "m/d/y"), locale = "eng")
...應(yīng)該能夠處理大多數(shù)格式。請注意b
/ B
格式是locale
敏感的。
可以使用的其他日期時(shí)間格式orders
列在“ 詳細(xì)信息”部分中?strptime
。
- 3 回答
- 0 關(guān)注
- 689 瀏覽
添加回答
舉報(bào)
0/150
提交
取消