2016-08-02 4 views
-1

나는행렬이 1/0입니다. 각 행은 개별 을 나타내고 열은 방문수 (Y/N 요소)입니다.행렬 및 벡터와 3 차원 배열 R

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

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

는 I 치수 i x j x max(b)와 3 차원 배열을 할 개인의기를 나타내는 벡터가있다.

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

그런 다음 그 개인 및 조사에 대한 관련 1/0 행 아래로 맨 윗줄에서 M를 입력합니다. 마지막에 여분의 행을 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 -'array'를 사용하여 손으로 만해도 M을 만들 수 있습니까? - 그런 다음 질문에 추가하십시오. 그것은 미래의 독자들을 위해 훨씬 더 명확하게 할 것입니다. – thelatemail

+0

편집을 보시고 어느 인수가'1 : length (which (b == i))'의 벡터에서 그것을 변경하는'seq_along'을 사용하십시오. – Vandenman