是可能的维度数组在之后我们填充它(以一维,向量,时尚)
模拟1维sni问题的关键,可以通过更高维度来完成。
> x=c()
> tmp=c(1,2)
> n=6
> for (i in seq(1, by=2, length=n)) x[i:(i+1)] =tmp;
> dim(x) = c(2,n)
> x
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 1 1 1 1 1
[2,] 2 2 2 2 2 2
>
不是使用i:(i+1)
为指标,可以优选使用seq(i, length=2)
或更好,但seq(i, length=length(tmp))
用于更通用的方法,如下图所示(为一个4×7阵列示例)
> x=c()
> tmp=c(1,2,3,4)
> n=7
> for (i in seq(1, by=length(tmp), length=n))
x[seq(i, length=length(tmp))] = tmp;
> dim(x) = c(length(tmp),n)
> x
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 1 1 1 1 1 1 1
[2,] 2 2 2 2 2 2 2
[3,] 3 3 3 3 3 3 3
[4,] 4 4 4 4 4 4 4
>
我们也可以通过用cbind/rbind重新赋值x来获得相似的结果,如下所示。
> tmp=c(1,2)
> n=6
> x=rbind(tmp)
> for (i in 1:n) x=rbind(x, tmp);
> x
[,1] [,2]
tmp 1 2
tmp 1 2
tmp 1 2
tmp 1 2
tmp 1 2
tmp 1 2
tmp 1 2
注:一个可以摆脱“TMP”的名字(这些是rbind的副作用),与
> dimnames(x)=NULL