Я пытаюсь добавить новый столбец во фрейм данных образца состояния в R. Я надеюсь, что этот столбец будет группировать идентификаторы состояний в более широкие категории (1-4). Мой код близок к тому, что я ищу, но я не совсем понимаю. Я знаю, что могу вводить каждый идентификатор состояния построчно, но есть ли более быстрый способ? Спасибо!
library(tidyverse)
#Добавить столбец для обозначения каждого состояния
States=state.x77
States=data.frame(States)
States <- tibble::rowid_to_column(States, "ID")
States
#Создать новую переменную для сегментов состояния
States <- States %>%
mutate(WAGE_BUCKET=case_when(ID <= c(1,12) ~ '1',
ID <= c(13,24) ~ '2',
ID <= c(25,37) ~ '3',
ID <= c(38,50) ~ '4',
TRUE ~ 'NA'))
View(States) #It is not grouping the states in the way I want/I am still getting some NA values but unsure why!
Вы можете использовать
cut
илиfindInterval
, если все ваши группы будут использовать непрерывные значенияID
:Если вы хотите сделать его немного более подробным, вы можете использовать
dplyr::between
в своемcase_when
:Это
vector
длины › 1. Операторы сравнения работают с одним вектором. Мы могли бы использоватьbetween
Или другой вариант — использовать
&
с>
и<=
Или может быть OP предназначен для использования
%in%