Мне интересно, есть ли какая-либо функция в R, которая похожа на функцию разреза, но работает на строки?R cut функция для строк
Код, над которым я работаю, - это присвоить данные, касающиеся состояний в США, категориальной переменной Region: существует 4 региона Северо-Восток, Средний Запад, Юг, Запад. Кадр данных, хранящий каждый из данных, сохраняет имя состояния в переменной «состояние» и в сокращенной форме: «Нью-Йорк» для Нью-Йорка или «MS» для Миссисипи, например. Переменная области должна быть добавлена к кадру данных, который я делаю в настоящее время следующим образом (это для домашней работы, поэтому я хочу показать, что у меня уже есть решение, и я просто ищу потенциально лучшего):
create.region <- function(state) {
northeast <- c("CT", "ME", "MA", "NH", "RI", "VT", "NJ", "NY", "PA")
midwest <- c("IL", "IN", "MI", "OH", "WI", "IA", "KS", "MN", "MO", "NE", "ND", "SD")
south <- c("DE", "DC", "FL", "GA", "MD", "NC", "SC", "VA", "WV", "AL", "KY", "TN", "MS", "AR", "LA", "OK", "TX")
west <- c("AZ", "CO", "ID", "MT", "NV", "NM", "UT", "WY", "AK", "CA", "HI", "OR", "WA")
region <- ifelse(state %in% northeast, "Northeast",
ifelse(state %in% midwest, "Midwest",
ifelse(state %in% south, "South",
ifelse(state %in% west, "West", NA))))
return(region)
}
birth_data <- within(birth_data, region <- create.region(state))
Я еще не знаю много о R, и я заинтересован в эффективности моего кода. В прошлом я обнаружил, что функция вырезания является более кратким и эффективным способом категоризации цифровых данных таким образом, но, по-видимому, она не работает с символьными векторами. Есть ли какая-либо функция, подобная разрезу, которая допускает правило назначения символов, а не только числовые?