2016-08-02 89 views
-1

我有一個i x j矩陣1/0。每行代表個人 ,列是訪問(元素Y/N)。矩陣和向量到三維陣列R

A<-matrix(rbinom(21,1,.5), nc=3, nr=7)

有表示個人的組

b<-c(1,2,2,1,1,2,3)

我想和尺寸i x j x max(b) 3-d陣列的載體。

M<-array(NA, c(nrow(A),ncol(A),max(b)))

然後在M從頂行與該個體和調查相關的1/0 行向下填充。將最後的行保留爲NA。

謝謝。我希望這是有道理的。

回答

0

不知道我是否理解這個問題,你想要這樣的東西嗎?

A<-matrix(rbinom(21,1,.5), nc=3, nr=7) 
b<-c(1,2,2,1,1,2,3) 
M<-array(NA, c(nrow(A),ncol(A),max(b))) 
for (i in unique(b)) { 
    M[seq_along(which(b == i)), , i] = A[which(b == i), ] 
} 
+0

差不多。我想從上面一行填滿M,所以所有的NA行都在最後。例如,1應該填充前三行,最後四行爲NA – Nathan

+0

@Nathan - 您是否可以創建'M' - 即使手動使用'array' - 然後將其添加到您的問題中?這將使未來的讀者更清楚。 – thelatemail

+0

請參閱編輯,使用'seq_along'圍繞哪個參數在'1:length(which(b == i))'的向量中更改它。 – Vandenman