R 패키지의 소스를 보면 sweep
꽤 자주 사용되는 함수를 볼 수 있습니다 . 때로는 더 단순한 함수가 충분할 때 (예 :) 사용되며 apply
, 다른 경우에는 코드 블록을 단계별로 실행하는 데 상당한 시간을 소비하지 않고는 정확히 무엇을하는지 알 수 없습니다.
sweep
더 간단한 함수를 사용하여의 효과를 재현 할 수 있다는 사실은 sweep
의 핵심 사용 사례를 이해하지 못함을 시사 하고이 함수가 자주 사용된다는 사실은 매우 유용하다는 것을 시사합니다.
문맥:
sweep
R의 표준 라이브러리에있는 함수입니다. 인수는 다음과 같습니다.
sweep(x, MARGIN, STATS, FUN="-", check.margin=T, ...)
# x is the data
# STATS refers to the summary statistics which you wish to 'sweep out'
# FUN is the function used to carry out the sweep, "-" is the default
보시다시피 인수는 하나 이상의 매개 변수가 필요 apply
하지만 .sweep
STATS
또 다른 주요 차이점은 입력 배열 과 동일한 모양sweep
의 배열 을 반환하는 반면에서 반환되는 결과는 전달 된 함수 에 따라 달라진다는 것입니다.apply
sweep
행동 :
# e.g., use 'sweep' to express a given matrix in terms of distance from
# the respective column mean
# create some data:
M = matrix( 1:12, ncol=3)
# calculate column-wise mean for M
dx = colMeans(M)
# now 'sweep' that summary statistic from M
sweep(M, 2, dx, FUN="-")
[,1] [,2] [,3]
[1,] -1.5 -1.5 -1.5
[2,] -0.5 -0.5 -0.5
[3,] 0.5 0.5 0.5
[4,] 1.5 1.5 1.5
요약하자면 제가 찾고있는 것은 sweep
.
R 문서, 메일 링리스트 또는 '기본'R 소스를 낭송하거나 링크하지 마십시오. 내가 읽었다 고 가정합니다. 제가 관심있는 것은 경험이 많은 R 프로그래머 / 분석가 sweep
가 자신의 코드에서 사용하는 방법 입니다.
apply
이 결과에 대해 알아낼 수 있는 유일한 사용법 은와 같은 것입니다 t(apply(t(M), 2, "-", dx))
.하지만 그것은 꽤 끔찍합니다.