मैं Rcpp का उपयोग करना सीखना चाहूंगा । मैं पैकेज के CRAN वेबसाइट पर डॉक्स के माध्यम से गया था, लेकिन मुझे लगता है कि एक व्यावहारिक उदाहरण पर काम करना (दूसरा व्यावहारिक, convolve3 पर विचार करना) अधिक सहायक होगा।
मैं स्ट्रोंगबेस पैकेज से निम्नलिखित कोड का प्रस्ताव करता हूं क्योंकि यह न तो बहुत लंबा है और न ही बहुत छोटा है, आर प्रकार और आर कार्यों के संयोजन का उपयोग करता है और उन छोटे अंकगणित पुनरावृत्तियों में से एक है जो आर में बहुत धीमी गति से हैं। आप आरसीपी पर कैसे जाएंगे -नहीं?
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))
}
कृपया जितना हो सके समझाएं।
संपादित करें यह वास्तव में एक कुशल कार्यान्वयन के लिए एक अच्छी तरह से लिखे गए (और प्रलेखित) आर कोड (इसलिए कम से कम नींव ठीक हैं) को बदलने के बारे में आप कैसे जाना चाहते हैं, इसके बारे में कदम की व्याख्या का विचार है। कोड का चुनाव थोड़ा यादृच्छिक है, लेकिन मुझे लगता है कि यह हमारे ब्लूप्रिंट पर कट्टर-विशिष्ट स्क्रिप्ट को दर्शाता है (आर फ़ंक्शन जिन्हें कोई अनुवाद नहीं करना चाहता है, अंकगणितीय छोरों का उपयोग करता है ....)।
EDIT2 टिप्पणियों से मुझे एहसास हुआ कि यह वास्तव में C ++ में करने के लिए एक बड़ा काम हो सकता है (मुझे कोड पोस्ट करते समय इसका एहसास नहीं हुआ)। इस संबंध में, शैक्षणिक उपकरणों के रूप में अलग-अलग टुकड़ों का उपयोग करना ठीक है। मैं अंततः प्रश्न को संपादित करके टुकड़ों को एक साथ पार्स करूंगा।