Преобразование символа в число месяцев - PullRequest
1 голос
/ 13 апреля 2019

Я работаю над набором данных, где есть столбец account_age. В этом столбце указан возраст в формате «1YRS 5MON» в символьной форме. Как конвертировать то же самое в месяц? Пожалуйста, руководство.

1 Ответ

0 голосов
/ 13 апреля 2019

Мы можем сопоставить 'YRS', 'MON' с gsubfn, заменить символы цифрами и eval uate

library(gsubfn)
unname(sapply(gsubfn("[A-Z]+", list(YRS = "*12 +", MON = "*1"),
           df1$col1), function(x) eval(parse(text = x))))
#[1] 17

Или другой вариант - извлечь цифры и сделать сумму или продукты

library(tidyverse)
map_dbl(str_extract_all(df1$col1, "\\d+"), ~ as.numeric(.x) %*% c(12, 1))
#[1] 17

Или мы можем удалить буквы, прочитать их с помощью data.frame и получить сумму продуктов

as.matrix(read.table(text = gsub("[A-Z]+", "", df1$col1),
       header = FALSE) )%*% c(12, 1)

Данные

df1 <- data.frame(col1 = "1YRS 5MON", stringsAsFactors = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...