创建一个数组,其中每个元素都是R中不同长度的列表

时间:2013-07-25 21:11:35

标签: arrays r

我希望创建一个数组。每个元素都将被指定为一个列表,每个列表的长度不同(在执行脚本之前未知)。一个简单的例子是让[1]为列表q,[2]为列表。是否有一个我可以使用的构造,可能与数组不同,允许这样的分配。

q <- c(1,2,3,4,5)

w <- c(6,7,8)

a <- array(2)

a[1] <- q

警告讯息:

 In a[1] <- q :  number of items to replace is not a multiple of replacement length

4 个答案:

答案 0 :(得分:1)

由于您需要一系列列表,请尝试:

a[1] <- list(q)

答案 1 :(得分:1)

正如评论中指出的那样,您可能正在寻找list而不是array (后者更类似于多维矩阵或数学向量。)< / em>的

然而,除了索引之外还有问题:

R a[1] <- qa[[1]] <- q

之间存在重大差异

尝试以下方法来发现差异:

a <- list()
a[[1]] <- q
a[[2]] <- w 
a

比较
a <- list()
a[1] <- q
a[2] <- w 
a

答案 2 :(得分:0)

我认为你想要的是一个向量列表。

q <- c(1,2,3,4,5)
w <- c(6,7,8)
a <- list()

a[[1]] <- q

答案 3 :(得分:0)

列表有效 - 谢谢!它允许我根据一些分离截止值将一组位置划分为一个列表列表。

delta < - 200

pcls&lt; - list(nrow = pctot)

v&lt; - posvec [1]

pcind&lt; - 0

jtest&lt; - 0

for(j in 2:nr){

dist <- posvec[j]-posvec[j-1]

if (dist <= delta) {

    v <- c(v,posvec[j])

    jtest <- 1

}

if (dist > delta) {

    if (jtest > 0) {

        pcind <- pcind + 1

        pcls[[pcind]] <- v

        v <- posvec[j]

    }

    jtest <- 0

}

}