gpt4 book ai didi

r - 向矩阵错误添加新列

转载 作者:行者123 更新时间:2023-12-02 13:13:07 25 4
gpt4 key购买 nike

我正在尝试向现有矩阵添加新列,但每次都会收到警告。

我正在尝试这段代码:

normDisMatrix$newColumn <- labels

收到此消息:

Warning message: In normDisMatrix$newColumn <- labels : Coercing LHS to a list

之后,当我检查矩阵时,它似乎为空:

dim(normDisMatrix)
NULL

注意:标签只是数字在 1 到 4 之间的向量。

可能是什么问题?

最佳答案

正如 @thelatemail 指出的,$ 运算符不能用于对矩阵进行子集化。这是因为矩阵只是具有维度属性的单个向量。当您使用 $ 尝试添加新列时,R 将矩阵转换为可以在向量(即列表)上使用 $ 的最低结构。

您想要的函数是cbind() (column bind)。假设我有矩阵 m

(m <- matrix(51:70, 4))
# [,1] [,2] [,3] [,4] [,5]
# [1,] 51 55 59 63 67
# [2,] 52 56 60 64 68
# [3,] 53 57 61 65 69
# [4,] 54 58 62 66 70

要从名为labels的向量添加新列,我们可以这样做

labels <- 1:4
cbind(m, newColumn = labels)
# newColumn
# [1,] 51 55 59 63 67 1
# [2,] 52 56 60 64 68 2
# [3,] 53 57 61 65 69 3
# [4,] 54 58 62 66 70 4

关于r - 向矩阵错误添加新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27790670/

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