비디오: r/Mildlyinfuriating | Gah! My candy! That's it -- this is going on Reddit. 2024
기본적으로 R은 대괄호를 사용하여 배열에서 값을 추출 할 때 가능한 가장 작은 차원 수로 객체를 단순화하려고합니다. 따라서 하나의 열이나 행만 요구하면 R은 차원을 삭제하여 벡터를 만듭니다.
벡터와 마찬가지로 인덱스에 여러 숫자를 결합 할 수 있습니다. 행렬의 첫 번째 행과 세 번째 행을 삭제하려면 다음과 같이하십시오.
잠깐 … 색인은 하나뿐입니다. R은 여기에 행렬을 반환하지 않습니다 - 벡터를 반환합니다!
색인 기능에서 추가 인수 드롭을 사용하여 R에 모든 차원을 유지하도록 할 수 있습니다. 두 번째 행을 행렬로 반환하려면 다음을 수행하십시오. >> 먼저. matrix [2, drop = FALSE] [1] [2] [3] [4] [1,] 2 5 8 11
이것은 완전히 마술처럼 보입니다. 괄호 사이에 3 개의 위치가 있으며, 모두 쉼표로 구분됩니다. 첫 번째 위치는 행 인덱스입니다. 두 번째 위치는 열 인덱스입니다. 하지만 그 다음엔?
-
실제로 대괄호는 함수처럼 작동하고 행 인덱스와 열 인덱스는 대괄호에 대한 인수입니다. 이제 추가 인수 drop을 값 FALSE로 추가합니다. 다른 함수와 마찬가지로 인수를 쉼표로 구분합니다. 이 모든 것을 하나로 합치면 여기에 코드가 있습니다.
행렬에서 값을 대체하는 것은 벡터에서 값을 대체하는 것과 매우 유사한 방식으로 수행됩니다. 첫 번째의 두 번째 행과 세 번째 열의 값을 바꿉니다. 행렬이 4 인 경우 다음 코드를 사용합니다.-
다른 차원을 지정하지 않음으로써 값의 행 또는 열. 값은 재활용되므로 두 번째 행을 1, 3, 1, 3 순으로 변경하려면 >>를 먼저 수행하면됩니다. 행렬 [2,] 먼저. 행렬 [1] [2] [3] [4] [1,] 1 4 7 10 [2,] 1 3 1 3 [3,] 3 4 9 12
다른 행렬에 의해 행렬 내의 값을 구합니다. 값을 행렬로 지정하지 않아도 벡터가 수행합니다. 다음 코드의 결과를 살펴보십시오.>> 먼저. 행렬 [1: 2, 3: 4]가 먼저 나타납니다. 행렬 [1] [2] [3] [4] [1,] 1 4 8 2 [2,] 1 3 4 1 [3,] 3 4 9 12 처음 두 행과 마지막 두 열을 숫자 8, 4, 2 및 1로 변환합니다. R은 기본적으로 행렬을 열 단위로 읽고 씁니다.따라서 벡터를 행렬 또는 행렬의 하위 집합에 넣으면 방법에 관계없이 열 단위로 놓입니다. 이를 행별로 처리하려면 먼저 byrow = TRUE 인수를 사용하여 값으로 행렬을 구성해야합니다. 그런 다음 원래 벡터 대신이 행렬을 사용하여 값을 삽입합니다.