r - 在 R 中的循环中构建列表 - 获取正确的项目名称

标签 r list loops

我有一个函数,它包含两个列表的循环并构建一些计算数据。我想将这些数据作为列表列表返回,由某个值索引,但我的分配错误。

我正在尝试做的一个最小的例子,以及我出错的地方是:

mybiglist <- list()
for(i in 1:5){
    a <- runif(10)
    b <- rnorm(16)
    c <- rbinom(8, 5, i/10)
    name <- paste('item:',i,sep='')
    tmp <- list(uniform=a, normal=b, binomial=c)
    mybiglist[[name]] <- append(mybiglist, tmp)
}

如果您运行它并查看输出 mybiglist,您会发现每个项目的命名方式都出现了问题。

关于如何实现我真正想要的任何想法?

谢谢

附:我知道在 R 中有一种感觉,如果必须求助于循环,就会失败,但在这种情况下,我确实觉得有道理;-)

最佳答案

如果您不使用 append,它会起作用命令:

mybiglist <- list()
for(i in 1:5){
  a <- runif(10)
  b <- rnorm(16)
  c <- rbinom(8, 5, i/10)
  name <- paste('item:',i,sep='')
  tmp <- list(uniform=a, normal=b, binomial=c)
  mybiglist[[name]] <- tmp
}

# List of 5
# $ item:1:List of 3
# ..$ uniform : num [1:10] 0.737 0.987 0.577 0.814 0.452 ...
# ..$ normal  : num [1:16] -0.403 -0.104 2.147 0.32 1.713 ...
# ..$ binomial: num [1:8] 0 0 0 0 1 0 0 1
# $ item:2:List of 3
# ..$ uniform : num [1:10] 0.61 0.62 0.49 0.217 0.862 ...
# ..$ normal  : num [1:16] 0.945 -0.154 -0.5 -0.729 -0.547 ...
# ..$ binomial: num [1:8] 1 2 2 0 2 1 0 2
# $ item:3:List of 3
# ..$ uniform : num [1:10] 0.66 0.094 0.432 0.634 0.949 ...
# ..$ normal  : num [1:16] -0.607 0.274 -1.455 0.828 -0.73 ...
# ..$ binomial: num [1:8] 2 2 3 1 1 1 2 0
# $ item:4:List of 3
# ..$ uniform : num [1:10] 0.455 0.442 0.149 0.745 0.24 ...
# ..$ normal  : num [1:16] 0.0994 -0.5332 -0.8131 -1.1847 -0.8032 ...
# ..$ binomial: num [1:8] 2 3 1 1 2 2 2 1
# $ item:5:List of 3
# ..$ uniform : num [1:10] 0.816 0.279 0.583 0.179 0.321 ...
# ..$ normal  : num [1:16] -0.036 1.137 0.178 0.29 1.266 ...
# ..$ binomial: num [1:8] 3 4 3 4 4 2 2 3

关于r - 在 R 中的循环中构建列表 - 获取正确的项目名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12511648/

相关文章:

c# - 无法替换字符串列表中的最后一个元素

c# - 将 List<string>[] 读入动态标签

WordPress 元查询可以为自定义字段提取具有空元值的帖子

javascript - 删除所选之前数组中的所有元素

java - Java 中的循环逻辑

R 图形 : axis label placement relative to tick labels?

r - 搜索带条件的行并更改它们

r - 如何处理面板数据索引中的NA

r - 使用 dplyr 语法和 attr 函数转换时区

r - 向列表列表添加一个新元素(在 R 中)