创建一个空列表,用R中的列表填充它

时间:2015-03-27 18:33:02

标签: r

我想创建一个空列表,以便我可以将其元素替换为其他列表。

例如

simulations = 10
seeds = sample(10000:99999, simulations, replace=F)

test_function <- function(seedX){
  lista = list(seedX=seedX, 
               dataframe=data.frame(x=runif(10, -5.0, 5.0),y=rnorm(10,mean = 0,sd = 1)))
  return(lista)
}
results <- vector("list", simulations) 
results[1] = test_function(seedX = seeds[1])

我收到以下错误:

Warning message:
In results[1] = test_function(seedX = seeds[1]) :
  number of items to replace is not a multiple of replacement length

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:9)

只需更改

results[1] = test_function(seedX = seeds[1])

results[[1]] <- test_function(seedX = seeds[1])

重要的更改是[...]列表组件索引运算符的[[...]]元素索引运算符,因为您需要将列表组件分配给新列表。请参阅https://stat.ethz.ch/R-manual/R-devel/library/base/html/Extract.html

(您还应该使用<-赋值运算符而不是=,主要是为了遵循R约定,还因为=意味着不同的东西(因此无法使用)对于其他上下文中的赋值),例如函数调用中的命名参数规范,因此使用<-可以实现更高的一致性。)