8.2 배열 요소 접근

배열 요소의 접근도 행렬의 접근과 유사한 방법으로 할 수 있습니다. 예를 들어 3차원 배열의 경우 [1st.Dim, 2nd.Dim, 3rd.dim ]와 같이 각 차원을 컴마(,)로 구분하고 각각에 대하여 정수형 벡터, 문자형 벡터 그리고 논리형 벡터로 접근할 수 있습니다.

## arr.3 배열을 이용하여 배열 요소를 접근해 보겠습니다.

# 정수형 벡터에 의한 접근
arr.3[1, ,]           # 1차원의 1행에 대해 2차원과 3차원의 모든 요소를 출력합니다. 2차원 행렬형태로 반합니다.
##         Grade
## Level     S  A  B  C
##   low    11  7 11  7
##   middle 10 15 10 15
##   high   12 10 12 10
arr.3[ , 1:2, ]       # 1차원 전체(2개 벡터), 2차원 (1,2 벡터), 3차원 전체, 즉 2 X 2 X 4 배열을 반환합니다.
## , , Grade = S
## 
##         Level
## Gender   low middle
##   male    11     10
##   female   9     16
## 
## , , Grade = A
## 
##         Level
## Gender   low middle
##   male     7     15
##   female  19     15
## 
## , , Grade = B
## 
##         Level
## Gender   low middle
##   male    11     10
##   female   9     16
## 
## , , Grade = C
## 
##         Level
## Gender   low middle
##   male     7     15
##   female  19     15
arr.3[ , , 2:3]       # 1차원 전체(2개 벡터), 2차원 (3개 벡터), 3차원 2개 벡터, 즉 2 X 3 X 2 배열을 반환합니다.
## , , Grade = A
## 
##         Level
## Gender   low middle high
##   male     7     15   10
##   female  19     15    7
## 
## , , Grade = B
## 
##         Level
## Gender   low middle high
##   male    11     10   12
##   female   9     16    8
# 문자형 벡터에 의한 접근 (위의 예를 문자형으로 표시해 보겠습니다.)
arr.3["male",  , ]
##         Grade
## Level     S  A  B  C
##   low    11  7 11  7
##   middle 10 15 10 15
##   high   12 10 12 10
arr.3[ , c("low", "middle"), ]
## , , Grade = S
## 
##         Level
## Gender   low middle
##   male    11     10
##   female   9     16
## 
## , , Grade = A
## 
##         Level
## Gender   low middle
##   male     7     15
##   female  19     15
## 
## , , Grade = B
## 
##         Level
## Gender   low middle
##   male    11     10
##   female   9     16
## 
## , , Grade = C
## 
##         Level
## Gender   low middle
##   male     7     15
##   female  19     15
arr.3[ , , c("A", "B")]
## , , Grade = A
## 
##         Level
## Gender   low middle high
##   male     7     15   10
##   female  19     15    7
## 
## , , Grade = B
## 
##         Level
## Gender   low middle high
##   male    11     10   12
##   female   9     16    8
# 논리형 벡터에 의한 접근 (마찬가지로 위의 예를 논리형으로 표시해 보겠습니다.)
arr.3[c(T, F), , ]
##         Grade
## Level     S  A  B  C
##   low    11  7 11  7
##   middle 10 15 10 15
##   high   12 10 12 10
arr.3[ , c(T, T, F), ]
## , , Grade = S
## 
##         Level
## Gender   low middle
##   male    11     10
##   female   9     16
## 
## , , Grade = A
## 
##         Level
## Gender   low middle
##   male     7     15
##   female  19     15
## 
## , , Grade = B
## 
##         Level
## Gender   low middle
##   male    11     10
##   female   9     16
## 
## , , Grade = C
## 
##         Level
## Gender   low middle
##   male     7     15
##   female  19     15
arr.3[ , , c(F, T, T, F)]
## , , Grade = A
## 
##         Level
## Gender   low middle high
##   male     7     15   10
##   female  19     15    7
## 
## , , Grade = B
## 
##         Level
## Gender   low middle high
##   male    11     10   12
##   female   9     16    8

8.2.1 배열 요소의 서브 세팅과 수정

배열 요소의 서브 세팅은 배열 요소에 접근한 다음 새로운 변수에 할당하면 이루어 집니다. 그리고 데이터 수정은 수정을 원하는 배열 요소에 접근한 다음 원하는 데이터로 할당 연산자를 이용하여 재할당하면 되는 것입니다.