Переименовать и уменьшить несколько похожих наблюдений в R

У меня есть категориальная переменная со 169 уровнями. Хочу сократить до управляемых 7-10 факторов, - "Религия", "Культура и искусство", "Образование", "Защита животных", "ЧС", "Охрана окружающей среды", "Социальная служба" и т.д.

enter image description here

Я понимаю, что могу использовать функцию level() для переименования всех этих 169 факторов, однако я ищу умные варианты, например, могу ли я использовать «Религию» или «Культуру» в качестве фильтра, чтобы сгруппировать их все под 1 кодом?

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы могли бы сделать что-то вроде этого. Дополнительные параметры см. в документации по str_detect.

Кому-то будет легче помочь вам, если вы можете предоставить некоторые полезные минимальные примерные данные и попытку кода в соответствии с воспроизводимым примером ниже. Затем мы можем запустить его и предложить улучшения.

library(tidyverse)

data_df <- tribble(
  ~ label,
  "Culture and Arts",
  "Education in Japanese",
  "Culture and Recreation",
  "culture & Environment",
  "Environmental Activities",
  "Education & research"
) 

data_df2 <- data_df |>
  mutate(category = case_when(
    str_detect(label, "Cultu")   ~ "Culture & Arts",
    str_detect(label, "Educ")    ~ "Education",
    str_detect(label, "Environ") ~ "Environment",
    TRUE ~ "Other"
  ) |> factor())

data_df2
#> # A tibble: 6 × 2
#>   label                    category      
#>   <chr>                    <fct>         
#> 1 Culture and Arts         Culture & Arts
#> 2 Education in Japanese    Education     
#> 3 Culture and Recreation   Culture & Arts
#> 4 culture & Environment    Environment   
#> 5 Environmental Activities Environment   
#> 6 Education & research     Education

levels(data_df2$category)
#> [1] "Culture & Arts" "Education"      "Environment"

Created on 2022-04-23 by the reprex package (v2.0.1)

Другие вопросы по теме