Rcpp 사용법을 배우고 싶습니다 . 패키지의 CRAN 웹 사이트에서 문서를 살펴 보았지만 실용적인 예제 (convolve3를 고려한 두 번째 실용적인)에 대한 작업이 더 도움이 될 것이라고 생각합니다.
로버 스트베이스 패키지 는 다음과 같은 코드를 제안합니다. 너무 길지도 짧지 않기 때문에 R 유형과 R 함수의 조합을 사용하며 R에서 너무 느린 작은 산술 반복 중 하나가 있습니다. -알아?
scaleTau2<-function (x, c1 = 4.5, c2 = 3, consistency = TRUE, mu.too = FALSE){
n <- length(x)
medx <- median(x)
x. <- abs(x - medx)
sigma0 <- median(x.)
mu <- if (c1 > 0) {
x. <- x./(sigma0 * c1)
w <- 1 - x. * x.
w <- ((abs(w) + w)/2)^2
sum(x * w)/sum(w)
}
else medx
x <- (x - mu)/sigma0
rho <- x^2
rho[rho > c2^2] <- c2^2
if (!identical(consistency, FALSE)) {
Erho <- function(b) 2*((1-b^2)*pnorm(b)-b*dnorm(b)+b^2)-1
Es2 <- function(c2) Erho(c2*qnorm(3/4))
nEs2 <-ifelse(consistency == "finiteSample",n-2,n)*Es2(c2)
}
else nEs2 <- n
c(if (mu.too) mu, sigma0 * sqrt(sum(rho)/nEs2))
}
가능한 많이 설명해주세요.
편집 잘 작성된 (그리고 문서화 된) R 코드 (적어도 기초는 괜찮습니다)를 효율적인 구현으로 변환하는 방법을 단계별로 설명하는 아이디어입니다. 코드의 선택은 약간 무작위 일 수 있지만, 청사진에 전형적인 스크립트를 반영한다고 생각합니다 (번역하고 싶지 않은 R 함수를 호출하고 산술 루프를 사용합니다 ...).
의견에서 EDIT2 나는 이것이 실제로 C ++에서해야 할 큰 일 일 수 있다는 것을 알고 있습니다 (코드를 게시 할 때 그것을 몰랐습니다). 이와 관련하여 개별 조각을 교육학 장치로 사용하는 것이 좋습니다. 결국 질문을 편집하여 조각을 함께 구문 분석합니다.