gpt4 book ai didi

r - 将数值向量转换为 boolean 矩阵

转载 作者:行者123 更新时间:2023-12-01 08:08:41 26 4
gpt4 key购买 nike

我在 dataframe 中有一个列向量,并希望将其转换为二进制矩阵,以便稍后使用它进行矩阵乘法。

y_labels
1
4
4
3

想要的输出

1 0 0 0
0 0 0 1
0 0 0 1
0 0 1 0

在 Octave 中,我会执行类似 y_matrix = (y_labels == [1 2 3 4]) 的操作。但是,我不知道如何在 R 中得到这个。有人知道怎么做吗?

最佳答案

我们可以使用 model.matrix 将其改为二进制

model.matrix(~ -1 + factor(y_labels, levels = 1:4), df1)

或者用table

with(df1, table(1:nrow(df1), factor(y_labels, levels = 1:4)))
# 1 2 3 4
# 1 1 0 0 0
# 2 0 0 0 1
# 3 0 0 0 1
# 4 0 0 1 0

或者更简洁

+(sapply(1:4, `==`, df1$y_labels))
# [,1] [,2] [,3] [,4]
#[1,] 1 0 0 0
#[2,] 0 0 0 1
#[3,] 0 0 0 1
#[4,] 0 0 1 0

关于r - 将数值向量转换为 boolean 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48620204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com