首页 > 解决方案 > 如何使用 r 中的虚拟变量创建分类变量?

问题描述


案例1:0、0、0、0、1、1、1、1、0、0

案例2:1、1、0、0、1、0、0、0、1、0

案例3:0、1、0、0、0、1、1、0、0、1

我想从上表中得到以下向量。

答案:2、混合、0、0、混合、混合、混合、1、2、3

如何在 r 中解决上述问题?

标签: r

解决方案


我做了自己的功能来解决上述问题。

我希望它能帮助和我有同样问题的人。

dummy_to_cate <- function(mydata,column_area){
  result_vec <- NA
  vec_q=NA
  colname <- colnames(mydata)
  
  result_vec[is.na(mydata[,column_area[1]])==FALSE]<-paste(colname[1])
  for (i in column_area[-1]) {
    vec_q[is.na(mydata[,column_area[i]])==FALSE] <-1
    vec_q[is.na(mydata[,column_area[i]])==TRUE] <-0
    result_vec[vec_q==1 & is.na(mydata[,column_area[1]])==TRUE]<- paste(colname[i])
  }
   df<-is.na(mydata[,column_area])==FALSE
   result_vec[rowSums(df)>= 2]<-'mix'
  
  return(result_vec)
}

推荐阅读