gpt4 book ai didi

r - 使用 drop=FALSE 分配给子矩阵对角线时出错

转载 作者:行者123 更新时间:2023-12-04 20:42:34 25 4
gpt4 key购买 nike

打电话时diag<- ,只要不指定 drop=FALSE,就可以传递矩阵的一部分并获得正确的行为。 .

> X <- matrix(0, 3, 3)
> diag(X[-1,]) <- c(1,2)
> X
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 1 0 0
[3,] 0 2 0

指定 drop=false是一个不同的故事
> diag(X[-1,,drop=FALSE]) <- c(3,4)
Error in diag(X[-1, , drop = FALSE]) <- c(3, 4) :
incorrect number of subscripts

笔记:
> identical(X[-1,], X[-1,,drop=FALSE])
[1] TRUE

正如 MrFlick 所指出的,当 drop 时分配给切片参数导致相同的错误:
X[1,] <- 1
X[1,,drop=TRUE] <- 2
Error in X[1, , drop = TRUE] <- 2 : incorrect number of subscripts

为什么会这样?

最佳答案

根据?"[<-"帮助页面,drop= “仅适用于提取元素,不适用于替换”因此您不能使用 <-drop这基本上是什么 diag()是在做。正如我上面的评论,类似 X[,,drop=TRUE] <- 1:9也不允许。太糟糕了,错误信息没有更具体一点。

关于r - 使用 drop=FALSE 分配给子矩阵对角线时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23462775/

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