2016-04-15 21 views
0

Ich habe einige Probleme mit der Funktion plotCalibration() gehabt, ich habe es früher in Betrieb genommen, aber kürzlich während der Arbeit mit einem anderen Datensatz (here is a link to the .Rda data file) ich habe nicht in der Lage gewesen, eine Fehlermeldung abzuschütteln, die bis hält Stutzens:Probleme mit der Verwendung von plotCalibration() aus dem predefinyABEL-Paket in R

> plotCalibration(data = data, cOutcome = 2, predRisk = data$sortmort) 

Error in plotCalibration(data = data, cOutcome = 2, predRisk = data$sortmort) : The specified outcome is not a binary variable.` 

Wenn ich habe versucht, die cOutcome Spalte Faktoren oder logisch zu setzen, ist es immer noch nicht funktioniert.

Ich habe an der Quelle der Funktion betrachtet und das einzig Mal, wenn die Fehlermeldung, wenn() sonst in dem ersten aufkommt {} Erklärung:

if (length(unique(y))!=2) {stop(" The specified outcome is not a binary variable.\n")} 
else{ 

Aber ich habe überprüft, dass die Länge (unique (y)) ist in der Tat == 2, und verstehe daher nicht, warum die Fehlermeldung immer noch auftaucht!

Antwort

0

die Daten Sie auf die zuvor gesendet, ich sehe keinen Fehler aber:

Nach Ausgabe zusammen mit einer Eichkurve hergestellt:

> library(PredictABEL) 
> plotCalibration(data = data, cOutcome = 2, predRisk = data$sortmort) 
$Table_HLtest 
       total meanpred meanobs predicted observed 
[0.000632,0.00129) 340 0.001 0.000  0.31  0 
0.001287    198 0.001 0.000  0.25  0 
[0.001374,0.00201) 283 0.002 0.004  0.53  1 
0.002009    310 0.002 0.000  0.62  0 
[0.002505,0.00409) 154 0.003 0.000  0.52  0 
[0.004086,0.00793) 251 0.006 0.000  1.42  0 
[0.007931,0.00998) 116 0.008 0.009  0.96  1 
[0.009981,0.19545] 181 0.024 0.011  4.40  2 

$Chi_square 

[1] 4,906

$df 

[1] 8

$p_value 

[1] 0,7676

+0

Danke! Ich vermute, dass hier ein Namespace oder ein Umweltproblem auftritt. In diesem Fall muss ich versuchen, andere Objekte zu entfernen, die sich möglicherweise in der Umgebung befinden, wenn ich mit den Daten arbeite. –

0

Verwenden Sie bitte table(data[,2],useNA = "ifany"), um die Anzahl der Ebenen der Ergebnisvariablen Ihres Datasets anzuzeigen.

Die Funktion plotCalibration wird ausgeführt, wenn das Ergebnis eine binäre Variable (zwei Ebenen) ist.

+0

I habe bestätigt, dass es nur 2 Stufen in den Ergebnisvariablen sind: Dies ist das Ergebnis der Tabelle (data [2], useNA = „ifany):' 0 1 1829 4 ' –

+0

Schön, dass du das schon probiert hast. Dies legt nahe, Länge (unique (y)) sollte 2 sein, aber Sie haben vorher angezeigt "Ich habe überprüft, dass die Länge (einzigartig (y)) ist in der Tat! = 2". Warum ist das so? – suman

+0

Sorry, das ist ein Tippfehler, sollte nicht das **! ** haben, sollte ** == ** sein, stattdessen habe ich es jetzt korrigiert. –