【发布时间】:2018-08-10 06:33:00
【问题描述】:
我无法找到解决此错误的方法。我之前已经实施过解决方法,但我想知道这里是否有人知道它为什么会发生。
以下没有按预期返回错误
q <- list()
q[["a"]][["b"]] <- 3
q[["a"]][["c"]] <- 4
但是,当我添加另一层嵌套时,我得到:
q <- list()
q[["a"]][["b"]][["c"]]<- 3
q[["a"]][["b"]][["d"]] <- 4
q[["a"]][["b"]][["d"]]
如果我添加第四个嵌套列表,我会得到:
q <- list()
q[["a"]][["b"]][["c"]][["d"]] <- 3
q[["a"]][["b"]][["c"]][["e"]] <- 4
*tmp*[["c"]] 中的错误:下标越界
我希望 R 为三重嵌套列表返回与四重嵌套列表相同的错误消息。
几个月前我第一次遇到这个问题。我正在运行 R 3.4.3。
【问题讨论】:
-
奇怪的是它接受了:
q[["a"]][["b"]][["c"]]<- 3,但如果你接受q[["a"]][["b"]][["c"]],它会立即给出Error in q[["a"]][["b"]][["c"]] : subscript out of bounds错误。 -
请查看
str(q)。您正在创建一个带有一个元素“a”的list。然后在随后的分配中,即[[b]] <- 3,它是一个命名向量而不是一个列表。您期望的结构是什么?