多维列表?清单清单?列表数组?

Vas*_*y A 8 arrays r list matrix nested-lists

(我在这个问题上明确地使用了错误的术语,对不起 - 我只是不知道用R术语描述这个的正确方法......)

我想创建一个异构对象的结构.尺寸不是必需的矩形.我需要的可能只是在其他语言中称为"对象数组",如"对象".我指的是由不同成员组成的结构,即只是R中的列表 - 例如:

myObject <- list(title="Uninitialized title", xValues=rep(NA,50), yValues=rep(NA,50)) 
Run Code Online (Sandbox Code Playgroud)

现在我想制作100个这样的对象,并且能够用类似的东西来解决他们的成员

for (i in 1:100) {myObject[i]["xValues"]<-rnorm(50)}
Run Code Online (Sandbox Code Playgroud)

要么

for (i in 1:100) {myObject[i]$xValues<-rnorm(50)}
Run Code Online (Sandbox Code Playgroud)

我会很感激任何描述这件事情的暗示.

提前致谢!

Ant*_*ico 12

你在寻找这个神话中的野兽的名字还是该怎么做?:)我可能是错的,但我认为你只是把它称为列表列表..例如:

# create one list object
x <- list( a = 1:3 , b = c( T , F ) , d = mtcars )

# create a second list object
y <- list( a = c( 'hi', 'hello' ) , b = c( T , F ) , d = matrix( 1:4 , 2 , 2 ) )

# store both in a third object
z <- list( x , y )

# access x
z[[ 1 ]] 

# access y
z[[ 2 ]]

# access x's 2nd object
z[[ 1 ]][[ 2 ]]
Run Code Online (Sandbox Code Playgroud)


Aru*_*run 5

我没有意识到您正在寻找创建其他具有相同结构的对象。您正在寻找replicate

my_fun <- function() {
    list(x=rnorm(1), y=rnorm(1), z="bla")
}
replicate(2, my_fun(), simplify=FALSE)

# [[1]]
# [[1]]$x
# [1] 0.3561663
# 
# [[1]]$y
# [1] 0.4795171
# 
# [[1]]$z
# [1] "bla"
# 
# 
# [[2]]
# [[2]]$x
# [1] 0.3385942
# 
# [[2]]$y
# [1] -2.465932
# 
# [[2]]$z
# [1] "bla"
Run Code Online (Sandbox Code Playgroud)