2016-03-31 3 views
-1
anrufen

Wenn ich meine Funktion aufrufen, zeigt es NA?
Obwohl, wenn ich verschiedene Parameter sende, funktioniert es. Also meine Frage, wie viele Ergebnisse bei jedem Anruf eins oder zwei sein sollten und warum ich manchmal NA bekam.R-Code: Ich habe NA als Ergebnis, wenn ich meine Functon

Hier ist mein Code:

trsp<-function(x,p,tr,mlo,mhi) 
{ 
    mm<-seq(mlo, mhi, length =101) 
    w<-double(length (mm)) 
    for (k in 1:101) 
    { 
    xmm<-sort(abs((x-mm[k]))^p) 
    w[k]<-sum(xmm[c(1:ceiling(tr*length(x)))]) 
    } 
    mmw<-cbind(mm, w) 
    plot(mmw) 
    mmw[w<-min(w)] 
} 

dta<-rcauchy(23) 

trsp(dta,1,1,0,1) 
trsp(dta,2,1,0,1) 
trsp(dta,1,0.6,0,1) 
trsp(dta,2,0.6,0,1) 
trsp(dta,0.5,0.6,0,1) 
+0

Das zweite Argument ist 2 für den Fall, wenn ich NA bekomme. Alle anderen Aufrufe haben den "p" -Wert kleiner als 1. Macht das irgendeinen Sinn für den unkommentierten Algorithmus, den Sie implementieren? (Es ist generell hilfreicher, _what_ zu beschreiben, wenn Sie um Hilfe bitten.) –

Antwort

1

mir diese Frage Schritt für Schritt Lassen Sie beantworten.

1) Wie viele Ergebnisse sollten für jeden Anruf eins oder zwei sein ?: Nun, es wird nur EIN Ergebnis für jeden Anruf angezeigt. Der Grund dafür ist die Tatsache, dass wir, wenn wir zwei Vektoren binden, eine Matrix als Ausgabe erhalten. Wenn wir in einer Matrix einen Index anstelle von zwei verwenden, ist die Ausgabe ähnlich der, die Sie erhalten würden, nachdem Sie eine Matrix in einen Vektor umgewandelt und auf ein Element des Vektors zugegriffen haben.

2) Warum habe ich manchmal NA ?: Na, mag ich in der Situation erscheinen, wenn der Wert von w (gleich min (w)) 2 * Länge (x) zunimmt, wobei x ein Parameter ist die Funktion.

Verwandte Themen