1
apply()와 sweep()을 비교하기 위해 메모를 작성하고 다음과 같은 이상한 차이점을 발견했습니다. 적용 결과가 동일하면 MARGIN = 2가 필요하고 apply는 MARGIN = 2가 필요합니다. 또한 행렬을 지정하는 인수는 apply()에서는 대문자 X이지만 sweep()에서는 소문자입니다.apply() vs. sweep() in R
my.matrix <- matrix(seq(1,9,1), nrow=3)
row.sums <- rowSums(my.matrix)
apply.matrix <- apply(X = my.matrix, MARGIN = 2, FUN = function (x) x/row.sums)
sweep.matrix <- sweep(x = my.matrix, MARGIN = 1, STATS = rowSums(my.matrix), FUN="/")
apply.matrix - sweep.matrix ##yup same matrix
sweep()은 "apply-type"함수가 아닙니까? 이건 또 다른 R 버크인가 아니면 내 마음을 잃어 버렸니?
는
귀하의 질문은 무엇입니까? 즉, 설명서를 읽은 후 정확히 무엇이 불분명합니까? – Roland
질문 : 밀접하게 관련된 두 개의 함수가 실제로 동일한 문제에 대해 다른 구문을 사용합니까? –
R은 오래 동안 개발되었으며 R-Core는 기존 코드를 손상시키지 않도록 세심한주의를 기울였습니다. 이 두 기능은 모두 S의 유산이며 S/S-PLUS와의 호환성은 초기에는 큰 관심사였습니다. – Roland