【发布时间】:2020-06-01 10:45:34
【问题描述】:
我在将矩阵转换为 R 中的一种热编码时遇到了问题。我在 Matlab 中实现了但我在处理 R 中的对象时遇到了困难。这里我有一个“矩阵”类型的对象。
我想对这个矩阵应用一种热编码。我的列名有问题。
这是一个例子:
> set.seed(4)
> t <- matrix(floor(runif(10, 1,9)),5,5)
[,1] [,2] [,3] [,4] [,5]
[1,] 5 3 5 3 5
[2,] 1 6 1 6 1
[3,] 3 8 3 8 3
[4,] 3 8 3 8 3
[5,] 7 1 7 1 7
> class(t)
[1] "matrix"
期待:
1_1 1_3 1_5 1_7 2_1 2_3 2_6 2_8 ...
[1,] 0 0 1 0 0 1 0 0 ...
[2,] 1 0 0 0 0 0 1 0 ...
[3,] 0 1 0 0 0 0 0 1 ...
[4,] 0 1 0 0 0 0 0 1 ...
[5,] 0 0 0 1 1 0 0 0 ...
我尝试了以下方法,但矩阵保持不变。
library(data.table)
library(mltools)
test_table <- one_hot(as.data.table(t))
非常感谢任何建议。
【问题讨论】:
-
你好,斯维尔。请添加minimale reproducible example。另外,展示你已经尝试过的东西。这样你就可以帮助别人帮助你!
-
嗨达里奥,谢谢你的建议。我添加了一个示例,我没有尝试太多,因为在线提供的示例具有列名,并且仅将一列转换为一种热编码。在我的情况下,这些列不存在,我想将每一列转换为一个热编码。我有一个基本的 R 对象(矩阵)处理问题,而不是一个热编码本身的概念。
标签: r one-hot-encoding