또 다른 옵션은 몇 가지 다른 통계 옵션을 엽니 다.
40x20 data.frames의 목록을 40x20x1000 배열로 변환하는 경우 3 차원으로 드릴링하는 40x20 "튜브"각각에 대해 apply
수 있습니다.
세 × 4 행렬의 샘플을 사용 :
set.seed(42)
lst <- lapply(1:3, function(ign) matrix(sample(8), nrow=2))
lst
# [[1]]
# [,1] [,2] [,3] [,4]
# [1,] 8 2 3 4
# [2,] 7 5 6 1
# [[2]]
# [,1] [,2] [,3] [,4]
# [1,] 6 3 7 8
# [2,] 5 4 1 2
# [[3]]
# [,1] [,2] [,3] [,4]
# [1,] 8 3 4 2
# [2,] 1 6 7 5
가 abind
라이브러리를 사용하여, 우리는 임의로 세 번째 희미한 함께 바인딩 할 수 있습니다. (이 abind
. 당신이 당신의 data.frames가 이미 목록에 포착되는 점을 감안 시작하는 것이 어디는 매트릭스와 마찬가지로 동일 크기의 data.frames와 동일하게 작동합니다.) 지금
library(abind)
ary <- abind(lst, along = 3)
dim(ary)
# [1] 2 4 3
그리고 임의의 실행 대부분 "열"또는 "열"과 비교하여 각 "튜브"를 따라 기능합니다 (apply
을 사용하는 것이 좋습니다). apply
를 사용하여 지금
mean(c(8,6,8))
# [1] 7.333333
sd(c(8,6,8))
# [1] 1.154701
: 예를 들어, 8, 6, 8, 우리는 다음과 같은 통계를 기대하는 세 가지 층에 [1,1]
값을 제공
apply(ary, 1:2, mean)
# [,1] [,2] [,3] [,4]
# [1,] 7.333333 2.666667 4.666667 4.666667
# [2,] 4.333333 5.000000 4.666667 2.666667
apply(ary, 1:2, sd)
# [,1] [,2] [,3] [,4]
# [1,] 1.154701 0.5773503 2.081666 3.055050
# [2,] 3.055050 1.0000000 3.214550 2.081666
이 좀 더 열어 각 계층 내의 인덱스가 의미 상으로 비교 될 수 있다고 가정 할 때, 동일한 크기의 1000 개의 데이터 프레임을 통계적으로 집계합니다. 중간 크기 또는 기타 백분위 수를 Reduce
으로 결정하기 위해 작업 모델을 고안 할 수도 있지만, 90 백분위 수에 대해 apply(ary, 1:2, quantile, 0.9)
을 사용하는 것은 매우 쉽습니다 (말하십시오).
통계 검토 덕분에 정말 멋졌습니다. 나는 많은 의미를 가졌다. – ecolog