2017-03-21 2 views
0
matrix: 
     [,1] [,2] [,3] 
[1,] 1 5 9 
[2,] 2 6 10 
[3,] 3 7 11 
[4,] 4 8 12 

vector = c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l") 

값 내가 일반적인 벡터를 사용했다하지만 데이터가 그렇게 설정 훨씬 더 큰 변화와 함께이 일을하고있을 것 내가 좋아하는 뭔가 후하지 않다 :내가 얻을 수 있도록 값을 대체 할 수있는 방법

당신은 매트릭스의 원래 값 중 하나를 보존하지 않는 때문에
matrix(letters[1:12],4,3) 
+2

'매트릭스 [] <할 수있는 - vector'를? – cdeterman

답변

1

당신이 matrix 만 그런 정수를 포함 않는 경우 다음

mat <- matrix(sample(seq(12), 12), nrow = 4) 
vec <- letters[1:12] 

mat[] <- vec[mat[]] 
+0

답장을 보내 주셔서 감사합니다. 불행히도 내보기보다 복잡합니다.하지만 그건 내 잘못입니다. 제 질문의 수정 된 버전을 다시 게시 할 것입니다. – Aesler

+1

@Aesler가 두 번째 게시물에서 나옵니다. 위의 솔루션을 제공 한 예가 여전히 작동합니다. – cdeterman

0

은 다음과 일하는 것이

> matrix_name <- matrix(data = your_vector, 
         nrow = 4, 
         ncol = 3, 
         byrow = FALSE) 
+0

나는 나의 예에서 분명해 졌음에 틀림 없다. 행렬은 비 연속적인 숫자 일 수 있습니다. 예를 들어, 벡터는 [3,3] 항목으로 "1"을 가질 수 있습니다. 여기서 "1"을 벡터의 첫 번째 값으로 대체해야합니다.이 경우 " 에이". 또한 "2"값과 출력 행렬에 여러 "b"값이 중복 될 수 있습니다. – Aesler

+0

효과적으로 "모두 바꾸기"명령을 원합니다 – Aesler

+1

'''matrix_name <- replace (matrix_name, matrix_name == value_to_replace, replaced_value)''이것은 당신이 찾고있는 것입니까? – Crt

관련 문제