R:嵌套列表中的默认值

R:嵌套列表中的默认值,r,nested-lists,R,Nested Lists,我目前正在R中构建一个reccursive循环,在这里我必须跟踪我在嵌套列表中的深度。一、 但是,在嵌套列表中计数时遇到问题 以下是所说明的问题: 我有一张单子 myList <- list() 我可以对这个值求和得到零 sum(myList[["test1"]]) 0 现在我给这个索引赋值 myList[["test1"]] <- sum(myList[["test1"]]) + 1 为什么会这样 我不知道你想做什么,但这是你所做的更简单的版本: > x<-1

我目前正在R中构建一个reccursive循环,在这里我必须跟踪我在嵌套列表中的深度。一、 但是,在嵌套列表中计数时遇到问题

以下是所说明的问题:

我有一张单子

myList <- list()
我可以对这个值求和得到零

sum(myList[["test1"]])

0
现在我给这个索引赋值

myList[["test1"]] <- sum(myList[["test1"]]) + 1

为什么会这样

我不知道你想做什么,但这是你所做的更简单的版本:

> x<-1
> x[["test2"]]
Error in x[["test2"]] : subscript out of bounds
但是,如果我们将其中一个命名为
test2
,则订阅将返回以下内容:

> c(1,2,test2=3)[["test2"]]
[1] 3

当您设置
myList[[“test1”]
的值时,使用

myList[["test1"]] <- sum(myList[["test1"]]) + 1

因为myList[[“test1”]]为空。不能将NULL子集。如果您描述了为什么要这样做,这会有所帮助……我有一些嵌套列表,它需要对节点进行计数。为此,我编写了一个递归函数,它遍历列表,然后将输出存储在另一个嵌套列表中。
> c(1,2)[["test2"]]
Error in c(1, 2)[["test2"]] : subscript out of bounds
> c(1,2,test2=3)[["test2"]]
[1] 3
myList[["test1"]] <- sum(myList[["test1"]]) + 1
myList <- list()
myList[["test1"]] <- list(sum(myList[["test1"]]) + 1)
myList[["test1"]]["test2"] <- list(sum(myList[["test1"]][[1]]) + 1)

myList
myList$test1
myList$test1$test2