创建分类变量(年龄类别)并应用于表

时间:2020-04-28 19:38:01

标签: r categorical-data

我正在处理带有许多变量(包括“年龄”)的大型表。 这是我的桌子的示例:

  1. 年龄Var2 Var3 Var4 Var5
  2. 32约翰·格林结婚6'1
  3. 47朱莉娅·斯通离婚5'4
  4. 72迈克·怀特离婚5'8

...

我正在尝试向该表中添加一个变量,该变量将年龄从20岁开始的10年分类。

我已经创建了标准:

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 个答案:

答案 0 :(得分:1)

关于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))