Как изменить 02.05.1953 на 1953 в R (ie., Дд / мм / гггг в гггг)? - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь сравнить два набора данных на основе времени. У одного года годы записаны в формате «гггг», а у другого - «дд / мм / гггг». Есть ли способ преобразовать все это в простой формат года?

Ответы [ 2 ]

2 голосов
/ 08 февраля 2020

Вот пример lubridate:

library(lubridate)
#> 
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#> 
#>     date

x <- "05/02/1953"

full_date <- lubridate::mdy(x)

class(full_date)
#> [1] "Date"

just_the_year <- year(full_date)

just_the_year
#> [1] 1953

Вот пример, как изменить дату во всем фрейме данных:

library(tidyverse)

new_df <- df %>%
    mutate(full_date = lubridate::mdy(x)) %>%
    mutate(just_the_year = year(full_date))

Это создаст два новых столбца в вашем фрейме данных с датой в качестве даты, а не строки, а только год.

1 голос
/ 08 февраля 2020

Мы можем использовать format от base R

as.integer(format(as.Date("05/02/1953", "%d/%m/%Y"), "%Y"))
#[1] 1953

или с strptime

strptime("05/2/1953", "%d/%m/%Y")$year + 1900
#[1] 1953
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...