如何将一个变量重新编码为另一个变量
How to recode a variable into another variable
我正在尝试重新编码以下变量:
str(dades$Edat)
num [1:30000] 24 26 34 37 57 37 29 23 28 35 ...
进入这个:
agrupar.edat<-function(x){
for (i in 1:length(x)){
if (x[i]>=21 & x[i]<30) {x[i]<-'1'} else
if (x[i]>=30 & x[i]<40) {x[i]<-'2'} else
if (x[i]>=40 & x[i]<50) {x[i]<-'3'} else
if (x[i]>=50 & x[i]<60) {x[i]<-'4'} else
if (x[i]>=60 & x[i]<70) {x[i]<-'5'} else
if (x[i]>=70 & x[i]<80) {x[i]<-'6'}
}
所以我可以把结果放在这里:
edx<-agrupar.edat(dades$Edat)
但是有些东西不工作,edx 一直在回复我 "NULL"
问题一
您的函数没有 return
个参数。
结果,它是这样读的:
agrupar.edat<-function(x){
# do stuff
# good bye
}
…从逻辑上讲,没有任何结果(NULL
)。
尝试简单地在末尾添加 return(1)
,就在右括号之前,奇迹就会发生。
但是请注意,您的问题不需要需要一个函数。它需要…
问题2.
…使用cut
,正如@akrun 的评论指示您那样做。
我正在尝试重新编码以下变量:
str(dades$Edat)
num [1:30000] 24 26 34 37 57 37 29 23 28 35 ...
进入这个:
agrupar.edat<-function(x){
for (i in 1:length(x)){
if (x[i]>=21 & x[i]<30) {x[i]<-'1'} else
if (x[i]>=30 & x[i]<40) {x[i]<-'2'} else
if (x[i]>=40 & x[i]<50) {x[i]<-'3'} else
if (x[i]>=50 & x[i]<60) {x[i]<-'4'} else
if (x[i]>=60 & x[i]<70) {x[i]<-'5'} else
if (x[i]>=70 & x[i]<80) {x[i]<-'6'}
}
所以我可以把结果放在这里:
edx<-agrupar.edat(dades$Edat)
但是有些东西不工作,edx 一直在回复我 "NULL"
问题一
您的函数没有 return
个参数。
结果,它是这样读的:
agrupar.edat<-function(x){
# do stuff
# good bye
}
…从逻辑上讲,没有任何结果(NULL
)。
尝试简单地在末尾添加 return(1)
,就在右括号之前,奇迹就会发生。
但是请注意,您的问题不需要需要一个函数。它需要…
问题2.
…使用cut
,正如@akrun 的评论指示您那样做。