Как разделить элементы в столбце даты пробелом и вывести только первые два компонента даты («ГГГГ ММ»)? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть фрейм данных (например):

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 без удачи.

Ответы [ 3 ]

0 голосов
/ 28 июня 2019

Предполагая, что ваши данные в формате даты, 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
0 голосов
/ 28 июня 2019

от базы 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
0 голосов
/ 28 июня 2019
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
...