【问题标题】:how to create two-dimension list in R如何在R中创建二维列表
【发布时间】:2015-04-09 07:17:31
【问题描述】:

我想将matlab code转移到R中,ctlist是一个向量,matlab code如下:

telist{i,j}=ctlist;
[value,number]=max(ctlist);

我只是想知道 R 中有像 matlab 中的 telist{i,j} 这样的“数据结构”

【问题讨论】:

    标签: r matlab list cell transfer


    【解决方案1】:

    您可以拥有无​​限嵌套的列表:

    list1 <- list()
    
    list1[[1]] <- list()
    
    list[[1]][[1]] <- list()
    

    等等……

    但举个更实际的例子,假设您想要 2 个列表,其中每个列表包含 3 个列表:

    my.list.1 <- list()
    my.list.1[[1]] <- list()
    my.list.1[[2]] <- list()
    my.list.1[[3]] <- list()
    
    my.list.2 <- list()
    my.list.2[[1]] <- list()
    my.list.2[[2]] <- list()
    my.list.2[[3]] <- list()
    

    是否有特定的语法可以立即创建这些列表结构?

    根据 Richard Skriven 的评论,replicate 可以做到这一点。示例:my.lists &lt;- replicate(n=5, expr=list()) 将一次创建 5 个列表并将它们存储在名称 my.lists 下。

    填写清单

    您确实可以用向量、矩阵或数组填充这些列表或子列表中的任何一个。例如:

    my.list.1[[1]][[1]] <- c(1,5,3,3,5,3)
    my.list.1[[1]][[2]] <- matrix(0, nrow=10, ncol=10)
    

    真的没有限制。

    动态扩展列表

    您还可以在列表中动态添加元素,例如在循环中:

    my.list <- list() # we're creating a new one, but the following loop could
                      # be using a pre-existing list with data already inside
    for(i in 1:10) {
      my.list[[length(my.list) + 1]] <- (i*1):(i*200)
    }
    

    数组

    如果您的所有数据都是以“矩形/立方”方式结构化的相同类型,您可以使用多维数组

    > array(data = NA, dim = c(3,3,3))
    , , 1
    
         [,1] [,2] [,3]
    [1,]   NA   NA   NA
    [2,]   NA   NA   NA
    [3,]   NA   NA   NA
    
    , , 2
    
         [,1] [,2] [,3]
    [1,]   NA   NA   NA
    [2,]   NA   NA   NA
    [3,]   NA   NA   NA
    
    , , 3
    
         [,1] [,2] [,3]
    [1,]   NA   NA   NA
    [2,]   NA   NA   NA
    [3,]   NA   NA   NA
    

    【讨论】:

    • 是的,replicate() 可能是您最后一行的答案。
    • 有什么数据结构可以使用telist[[i]][[j]]&lt;-ctlist@Dominic Comtois
    • 嗯不确定ctlist 对象的结构/内容是什么?
    • 只是一个数字向量
    • 你的数据都是同一类型的吗?
    猜你喜欢
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 2014-08-15
    相关资源
    最近更新 更多