Как изменить формат года - PullRequest
       39

Как изменить формат года

1 голос
/ 06 августа 2020

У меня есть столбец года в моем фрейме данных, который отформатирован как финансовый год (например, 2015-16, 2016-17, и т. Д. c). Я хочу изменить их на 4-ди git год таким образом, чтобы 2015-16 гг. Стали 2016; 2016-17 становится 2017, et c. Как мне это сделать?

Ответы [ 3 ]

2 голосов
/ 06 августа 2020

Вы можете использовать parse_number из readr:

x <- c('2015-16', '2016-17')
readr::parse_number(x) + 1
#[1] 2016 2017

parse_number удаляет все нечисловые символы c до или после первого числа. Итак, в этом примере все после первого числа отбрасывается и превращается в numeri c. Затем мы прибавляем к нему 1, чтобы получить следующий год.

1 голос
/ 06 августа 2020

Возможное решение:

as.numeric(sub('-.*', '', '2015-16')) + 1
#[1] 2016
0 голосов
/ 06 августа 2020

Мы можем использовать sub для захвата первых двух цифр, оставляя следующие две цифры и -, а при замене укажите обратную ссылку (\\1) захваченной группы

as.numeric(sub("^(\\d{2})\\d{2}-", "\\1", v1))
#[1] 2016 2017

Или более компактно сопоставьте две цифры, за которыми следует -, и замените пробелом ('')

sub("\\d{2}-", "", v1)
[1] "2016" "2017"

Или используя substr

paste0(substr(v1,1, 2), substr(v1, 6, 7))
#[1] "2016" "2017"

ПРИМЕЧАНИЕ. Ни одно из решений не требует внешних пакетов. Кроме того, он неявно предполагает, что всегда есть приращение на 1 год. Это может быть любой год, как показано ниже, и он работает

v2 <- c("2015-18", "2014-15", "2012-19")
sub("\\d{2}-", "", v2)
#[1] "2018" "2015" "2019"

данные

v1 <- c("2015-16", "2016-17")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...