创建一个分类变量(年龄类别),并应用于一个表格。

问题描述 投票:0回答:1

我正在处理一个包含许多变量的大表,其中包括 "年龄".下面是我的表的一个例子。

  1. Age Var2 Var3 Var4 Var5
  2. 32 John Green 已婚 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. Age Var2 Var3 Var4 Var5 AgeClass(年龄)
  2. 32 John Green 已婚 6尺1寸 30-39岁
  3. 47 Julia Stone 离婚 5'4 40-49岁
  4. 72岁的迈克-怀特离婚了 5尺8寸70-79...

有谁知道如何做到这一点?

r categorical-data
1个回答
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))
© www.soinside.com 2019 - 2024. All rights reserved.