[英]How to change date format in R data frame and add to new column?
假設我有以下數據框,日期為 2020 年:
date
2020-01-01T05:00:00+0000
2020-02-01T05:00:00+0000
2020-01-01T05:00:00+0000
2020-03-01T05:00:00+0000
該列的type character
。
我想創建一個將返回的第二列。 Jan-20, Feb-20, etc. 即以下:
date date_name
2020-01-01T05:00:00+0000 Jan-20
2020-02-01T05:00:00+0000 Feb-20
2020-01-01T05:00:00+0000 Jan-20
2020-03-01T05:00:00+0000 Mar-20
請注意,例如-01-
指的是一月。
有誰知道如何做到這一點?
試試這個。 您只需要年份和月份,因此您可以使用as.Date()
和format()
來達到您的期望:
#Code
df$date_name <- format(as.Date(df$date),'%b-%Y')
Output:
df
date date_name
1 2020-01-01T05:00:00+0000 Jan-2020
2 2020-02-01T05:00:00+0000 Feb-2020
3 2020-01-01T05:00:00+0000 Jan-2020
4 2020-03-01T05:00:00+0000 Mar-2020
使用的一些數據:
#Data
df <- structure(list(date = c("2020-01-01T05:00:00+0000", "2020-02-01T05:00:00+0000",
"2020-01-01T05:00:00+0000", "2020-03-01T05:00:00+0000")), row.names = c(NA,
-4L), class = "data.frame")
一個data.table
選項(但@Duck 的format
方法更有效)
> setDT(df)[, date_name := paste0(month.abb[month(date)], "-", substr(year(date), 3, 4))][]
date date_name
1: 2020-01-01T05:00:00+0000 Jan-20
2: 2020-02-01T05:00:00+0000 Feb-20
3: 2020-01-01T05:00:00+0000 Jan-20
4: 2020-03-01T05:00:00+0000 Mar-20
我們可以使用來自zoo
的as.yearmon
library(dplyr)
library(zoo)
df %>%
mutate(date_name = as.yearmon(date))
-輸出
# date date_name
#1 2020-01-01T05:00:00+0000 Jan 2020
#2 2020-02-01T05:00:00+0000 Feb 2020
#3 2020-01-01T05:00:00+0000 Jan 2020
#4 2020-03-01T05:00:00+0000 Mar 2020
df <- structure(list(date = c("2020-01-01T05:00:00+0000", "2020-02-01T05:00:00+0000",
"2020-01-01T05:00:00+0000", "2020-03-01T05:00:00+0000")), row.names = c(NA,
-4L), class = "data.frame")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.