如何将一个热编码变量转换为R中的单个因子
在这篇文章中,他们讨论了如何对R中的单因子变量进行热编码。我想知道如何逆转这个问题,并从热编码某些属性的变量中获得单因子?这怎么样如何将一个热编码变量转换为R中的单个因子,r,one-hot-encoding,R,One Hot Encoding,在这篇文章中,他们讨论了如何对R中的单因子变量进行热编码。我想知道如何逆转这个问题,并从热编码某些属性的变量中获得单因子?这怎么样 库(dplyr) 这里有一个解决方案 第一个热编码carb mtcars$carb马自达RX40 0 #>马自达RX4 Wag 0 0 0 1 0 0 #>达特桑710100 #>大黄蜂4路100 #>大黄蜂运动队约0 1 0 0 0 0 #>勇敢的100 我们当然可以选择热编码变量 库(dplyr) df%>% 行() 突变(remade=which.max(c
库(dplyr)
这里有一个解决方案
第一个热编码carb
mtcars$carb马自达RX40 0
#>马自达RX4 Wag 0 0 0 1 0 0
#>达特桑710100
#>大黄蜂4路100
#>大黄蜂运动队约0 1 0 0 0 0
#>勇敢的100
我们当然可以选择热编码变量
库(dplyr)
df%>%
行()
突变(remade=which.max(c_跨(以“carb”开头))%>%
解组%>%
变异(重新制作=因子(重新制作))
#>#A tibble:32 x 7
#>carb1 carb2 carb3 carb4 carb6 carb8重新制作
#>
#> 1 0 0 0 1 0 0 4
#> 2 0 0 0 1 0 0 4
#> 3 1 0 0 0 0 0 1
#> 4 1 0 0 0 0 0 1
#> 5 0 1 0 0 0 0 2
#> 6 1 0 0 0 0 0 1
#> 7 0 0 0 1 0 0 4
#> 8 0 1 0 0 0 0 2
#> 9 0 1 0 0 0 0 2
#> 10 0 0 0 1 0 0 4
#>#……还有22行
在这里,它是一个功能,可以选择保留或删除一个热编码列a la@KM_83
冷编码%
解组%>%
突变({var}}:=因子({{var}}))
如果(!保留虚拟对象){
df%选择(-matches(粘贴0(编码的前缀,1:9)))
}
返回(df)
}
冷编码(df,“carb”)
#>#tibble:32 x 11
#>mpg气缸显示hp drat wt qsec与am齿轮carb
#>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#>#……还有22行
类似于x@rawr的帖子作为答案?@rawr是的,你应该把它作为答案发布。这是一个极好的解决方案。