Функция r для изменения значений - PullRequest
1 голос
/ 14 мая 2019

У меня есть следующие данные:

library(tidyverse)

d <- tibble(
  year = c(2018, 2019, 2020, 2021))

Я бы хотел, чтобы данные выглядели так:

d2 <- tibble(
  year = c(201718, 201819, 201920, 202021))

У меня есть следующая функция:

date_change = function(x, n) {
 x+199600
}

Тогда, если я применю это к данным:

date_change(d$year)

Я получу:

 [1] 201618 201619 201620 201621

Это не совсем то, что я хочу.У кого-нибудь есть идеи, как это сделать с помощью функции?

Я знаю, что могу просто заменить значение вручную, но мне нужна функция, чтобы можно было применить правило к большому набору данных.

Спасибо

Ответы [ 2 ]

3 голосов
/ 14 мая 2019

Вот решение, работающее в вашем особом случае:

paste0(d$year-1, d$year-2000)
[1] "201718" "201819" "201920" "202021"
1 голос
/ 14 мая 2019

Бит математика:

d <- tibble(year = c(2018, 2019, 2020, 2021))

d %>%
  mutate(year = floor(year / 100) * 10000 + (year %% 1000 - 1) * 100 + year %% 100)

# year
# <dbl>
#   1 201718
# 2 201819
# 3 201920
# 4 202021
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...