是可能的維度數組在之後我們填充它(以一維,向量,時尚)
模擬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