[英]How to convert character into date format in R
我有一個csv文件,其日期格式如下。
8/13/2016
8/13/2016
8/13/2016
2016-08-13T08:26:04Z
2016-08-13T14:30:23Z
8/13/2016
8/13/2016
當我將它導入R時,它將其作為一個字符。 我想將其轉換為日期格式,但是當我將其轉換為日期格式時,它將獲取所有NA值
as.Date(df$create_date,format="%m%d%y")
CSV中的日期字段具有記錄日期的不同格式。 如何在R中將其轉換為日期格式
基本R選項(假設OP的'create_date'列中只有兩種格式),將為那些以'year'開頭的日期元素創建一個帶有grepl
的邏輯索引,基於邏輯將'create_date'子集化index('i1'),單獨轉換為Date
類,並將它們分別分配給與數據集的行數相同的Date
向量,以創建完整的Date
類。
i1 <- grepl("^[0-9]{4}", df$create_date)
v1 <- as.Date(df$create_date[i1])
v2 <- as.Date(df$create_date[!i1], "%m/%d/%Y")
v3 <- Sys.Date() + 0:(nrow(df)-1)
v3[i1] <- v1
v3[!i1] <- v2
df$create_date <- v3
或者正如我在OP的帖子(第一篇)中parse_date_time
的lubridate
可以使用來自lubridate
library(lubridate)
as.Date(parse_date_time(df$create_date, c('mdy', 'ymd_hms')))
#[1] "2016-08-13" "2016-08-13" "2016-08-13" "2016-08-13"
#[5] "2016-08-13" "2016-08-13" "2016-08-13"
df <- structure(list(create_date = c("8/13/2016", "8/13/2016",
"8/13/2016",
"2016-08-13T08:26:04Z", "2016-08-13T14:30:23Z", "8/13/2016",
"8/13/2016")), .Names = "create_date", class = "data.frame",
row.names = c(NA, -7L))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.