如何将一个变量重新编码为另一个变量

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 的评论指示您那样做。