R中的逻辑下标太长

珍妮特

这可能是一个简单的问题,但是有人可以解释为什么下面的第三行代码产生“逻辑下标过长”的错误吗?第二行和第三行代码有什么区别?谢谢!

try2 <- matrix(1 : 50, nrow = 10, byrow = TRUE)

try2[try2 < 10] <- 0

try2[try2 < 10,] <- 0
后期邮件

Amatrix只是一个vector具有某些维度的a属性。即,try2实际上只是1:50一些额外的细节:

str(try2)
# int [1:10, 1:5] 1 6 11 16 21 26 31 36 41 46 ...

类似地,对其应用的逻辑函数try2只有50个TRUE或FALSE值,并且具有以下维度:

str(try2 < 10)
# logi [1:10, 1:5] TRUE TRUE FALSE FALSE FALSE FALSE ...

因此

try2[try2 < 10] <- 0

很好,因为您有50个值,并由50个值索引。一切都符合预期。

另一方面,

try2[try2 < 10,] <- 0

要求:

try2[rowselection, columnselection]

不幸的是,您只有10行,但是您试图针对这10行使用50个值的索引。50太长而无法容纳10,因此:

try2 [try2 <10,]中的错误:(下标)逻辑下标过长

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章