2

我想创建一个数组。每个元素将被分配为一个列表,并且每个列表的长度都不同(在脚本执行之前未知)。一个简单的例子是让 a[1] 是列表 q 并且 a[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

4 回答 4

1

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

但是,除此之外,如果索引存在以下问题:

在和R之间有一个主要区别a[1] <- qa[[1]] <- q

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

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

与之比较

a <- list()
a[1] <- q
a[2] <- w 
a
于 2013-07-26T13:43:00.747 回答
1

由于您想要一个列表数组,请尝试:

a[1] <- list(q)
于 2013-07-25T21:19:45.287 回答
0

我认为您想要的是向量列表。

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

a[[1]] <- q
于 2013-07-25T21:25:27.950 回答
0

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

增量 <- 200

pcls <- 列表(nrow=pctot)

v <- posvec[1]

pcind <- 0

jtest <- 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

}

}

于 2013-07-26T14:24:10.460 回答