如何用 space 分隔日期列中的项目,并且只输出前两个日期部分 ("YYYY MM")?
How to separate items in a date column by a space, and only output the first two date components ("YYYY MM")?
我有一个数据框(例如):
df <- data.frame(name = c("a","b","c"),
date = c("2019-01-15","2019-02-08","2019-03-10")
)
我想创建一个新列 (new_date),重新设置日期列的格式,使其看起来像:
name date new_date
a 2019-01-15 2019 01
b 2019-02-08 2019 02
c 2019-03-10 2019 03
我一直在尝试使用 strsplit,但没有成功。
library(dplyr)
df %>%
mutate(new_date = format(as.Date(date), "%Y %m"))
name date new_date
1 a 2019-01-15 2019 01
2 b 2019-02-08 2019 02
3 c 2019-03-10 2019 03
假设您的数据是日期格式,lubridate 有一些很好的函数来提取相关信息
library(lubridate)
df$new_date <- paste(year(df$date),month(df$date), sep = " ")
> df
name date new_date
1 a 2019-01-15 2019 1
2 b 2019-02-08 2019 2
3 c 2019-03-10 2019 3
来自基地 R
df$date = as.POSIXct(df$date)
df$new_date = format(df$date,'%Y %m')
df
name date new_date
1 a 2019-01-15 2019 01
2 b 2019-02-08 2019 02
3 c 2019-03-10 2019 03
我有一个数据框(例如):
df <- data.frame(name = c("a","b","c"),
date = c("2019-01-15","2019-02-08","2019-03-10")
)
我想创建一个新列 (new_date),重新设置日期列的格式,使其看起来像:
name date new_date
a 2019-01-15 2019 01
b 2019-02-08 2019 02
c 2019-03-10 2019 03
我一直在尝试使用 strsplit,但没有成功。
library(dplyr)
df %>%
mutate(new_date = format(as.Date(date), "%Y %m"))
name date new_date
1 a 2019-01-15 2019 01
2 b 2019-02-08 2019 02
3 c 2019-03-10 2019 03
假设您的数据是日期格式,lubridate 有一些很好的函数来提取相关信息
library(lubridate)
df$new_date <- paste(year(df$date),month(df$date), sep = " ")
> df
name date new_date
1 a 2019-01-15 2019 1
2 b 2019-02-08 2019 2
3 c 2019-03-10 2019 3
来自基地 R
df$date = as.POSIXct(df$date)
df$new_date = format(df$date,'%Y %m')
df
name date new_date
1 a 2019-01-15 2019 01
2 b 2019-02-08 2019 02
3 c 2019-03-10 2019 03