Создать категориальную переменную (возрастные категории) и применить к таблице - PullRequest
0 голосов
/ 28 апреля 2020

Я работаю с большой таблицей со многими переменными, включая «возраст». Вот пример того, как выглядит моя таблица:

  1. Возраст Var2 Var3 Var4 Var5
  2. 32 Джон Грин Женат 6'1
  3. 47 Джулия Стоун разведена 5 ' 4
  4. 72 Майк Уайт В разводе 5'8

...

Я пытаюсь добавить в эту таблицу переменную, которая классифицирует возраст по 10-летним категориям. Начиная с 20 лет.

Я создал свои критерии:

mydata$age[mydata$age>=20 & mydata$age<=29] <- "20-29"
mydata$age[mydata$age>=30 & mydata$age<=39] <- "30-39"
mydata$age[mydata$age>=40 & mydata$age<=49] <- "40-49"
mydata$age[mydata$age>=50 & mydata$age<=59] <- "50-59"
mydata$age[mydata$age>=60 & mydata$age<=69] <- "60-69"
mydata$age[mydata$age>=70 & mydata$age<=79] <- "70-79"

Теперь я хочу добавить это как переменную в мою таблицу. Поэтому я хочу, чтобы эта переменная применяла правильную возрастную категорию к каждому возрасту, указанному в моей таблице данных. Вот пример того, как это должно выглядеть:

  1. Возраст Var2 Var3 Var4 Var5 AgeClass
  2. 32 Джон Грин Женат 6'1 30-39
  3. 47 Джулия Разведенный камень 5'4 40-49
  4. 72 Майк Разведенный 5'8 70-79 ...

У кого-нибудь есть идеи, как это сделать? Спасибо!

1 Ответ

1 голос
/ 29 апреля 2020

Как насчет функции cut, например,

df = data.frame(Age=c(32,47,72), 
                Var2=c("John","Julia","Mike"), 
                Var3=c("Green","Stone","White"),
                Var4=c("Married","Divorced","Divorced"),
                Var5=c("6'1","5'4","5'8"))
df$age = cut(df$Age,breaks = seq(20,80,10), 
             labels=paste0(seq(20,70,10),"-",seq(30,80,10)-1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...