我有一個列有這樣的資料
df <- data.frame(request_time = c("2020-12-31 13:05:00", NULL, "2020-11-14 02:04:01")
我想拆分 request_time 列以僅提取日期。希望有一個名為 request_date 的新列。
我試圖做到以下幾點:
df$request_date <- as.Date(df$request_time)
但這會回傳一個錯誤,指出“字串不是標準的明確格式”,由于存在 NULLS,我假設日期。我怎樣才能克服這個?
uj5u.com熱心網友回復:
我們可以將as_date函式與ymdfrom lubridate 包一起使用:
library(dplyr)
library(lubridate)
df %>%
mutate(request_time = ymd(as_date(request_time)))
輸出:
request_time
1 2020-12-31
2 2020-11-14
或者
library(tidyr)
df %>%
separate(request_time, c("date", "time"), sep=" ", remove = FALSE)
request_time date time
1 2020-12-31 13:05:00 2020-12-31 13:05:00
2 2020-11-14 02:04:01 2020-11-14 02:04:01
uj5u.com熱心網友回復:
只需使用str_extract以下方法提取日期:
library(stringr)
library(dplyr)
f %>%
mutate(request_time = str_extract(request_time, "[0-9-] "))
request_time
1 2020-12-31
2 2020-11-14
在base R:
f$request_time <- str_extract(f$request_time, "[0-9-] ")
uj5u.com熱心網友回復:
該NULL部分是不明確的。如果是字串"NULL",則as.Date應該回傳NA。否則,NULL就不能這樣存在。可能是一list列(不清楚)
df$request_time <- as.Date(df$request_time)
-輸出
df$request_time
[1] "2020-12-31" NA "2020-11-14"
資料
df <- data.frame(request_time = c("2020-12-31 13:05:00", "NULL", "2020-11-14 02:04:01"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/322052.html
上一篇:從日期4.5.6中提取日、月和年
