배열에서 apply
을 이해하는 가장 쉬운 방법은 몇 가지 예를 시도하는 것입니다. 여기에 마지막 예에서 수정 된 일부 데이터가 in the documentation 객체입니다 : 여기에 무슨
> z <- array(1:24, dim = 2:4)
> dim(z)
[1] 2 3 4
> apply(z, 1, function(x) sum(x))
[1] 144 156
> apply(z, 2, function(x) sum(x))
[1] 84 100 116
> apply(z, 3, function(x) sum(x))
[1] 21 57 93 129
? 자, 우리는 3 차원 배열 z
을 만듭니다. MARGIN=1
과 함께 apply
을 사용하면 두 행이 있기 때문에 두 개의 값이있는 행 합계를 얻게됩니다. MARGIN=2
을 사용하면 세 개의 열이 있기 때문에 세 개의 값을 얻을 수 있으며 MARGIN=3
을 사용하면 배열의 세 번째 행에서 합계를 얻을 수 있습니다 차원 (배열의 세 번째 차원에 네 개의 수준이 있으므로 네 개의 값).
MARGIN
에 대한 벡터를 지정하면 c(2,3)
과 같이 세 번째 차원의 각 열과 수준에 대한 행의 합계를 얻습니다. 상기 예에서, apply
에서 MARGIN=1
와 결과가 로우 합이 얼마나 참고 MARGIN=2
와 열 합은 각각 아래의 결과에서 볼 수있는 매트릭스 :
> apply(z, c(2,3), function(x) sum(x))
[,1] [,2] [,3] [,4]
[1,] 3 15 27 39
[2,] 7 19 31 43
[3,] 11 23 35 47
하면이 측정 기준 모두를 지정하면 MARGIN=c(1,2,3)
단순히 원래의 세 가지 차원 객체를 얻을 : 여기 배울 수
> all.equal(z, apply(z, c(1,2,3), function(x) sum(x)))
[1] TRUE
가장 좋은 방법은 그냥 진짜 행렬 주변에 재생을 시작하는 것입니다. 모든 배열 항목이 0이므로 예제 데이터는 합계를 보는 데 도움이되지 않습니다.
1 : n은 행으로 시작하는 적용되는 치수입니다. –