2016-06-15 25 views
2

Ich versuche derzeit, die Anesrake-Funktion (Teil des Anesrake-Pakets https://cran.r-project.org/web/packages/anesrake/index.html, die Population Attributsätze basierend auf Beispiel-Attribut-Sets zu gewichten) innerhalb von R auf ungefähre Gewicht-Rankings für mehrere Sätze von Variablen.Anesrake Run Fehler bei der Ausführung mehrerer Zielvariablen

Ich habe eine Tabelle von Beispieldaten Testdaten:

Index GENDER AGE  
1  Female 18-24 
2  Female 35-64 
3  Male  65+  

Hinweis: Altersbereich 6 Level- 18-24,25-34,35-44,45-54,55-64,65 +

ich habe dann einen Satz von 2 Listen für meine Bevölkerungsdaten:

GENDER <- c(.49,.51) 
AGE <- c(.08,.1,.12,.2,.2,.3) 

ich dann eine Reihe von Zielgrößen und eine CASEID Spalte auf der ursprünglichen Tabelle erstellen:

targets <- list(GENDER, AGE) 
names(targets) <- c("GENDER", "AGE") 
testData$CASEID <- 1:length(testData$GENDER) 

ich endlich die Varianz in meiner Bevölkerungsdaten vs meine Beispieldaten zu sehen:

> anesrakefinder(targets, testData, choosemethod = "total") 
    GENDER  AGE 
0.1495337 0.3668394 

Aber wenn ich die anesrake Funktion verwenden, um die endgültige Analyse zu tun, ich geworfen Fehler erhalten:

> anesrake(inputter=targets,dataframe=testData,caseid=testData$CASEID) 
Error in rakeonvar.default(mat[, i], inputter[[i]], weightvec) : 
    number of variable levels does not match number of weighting levels 
In addition: Warning message: 
In rakeonvar.default(mat[, i], inputter[[i]], weightvec) : 
    NAs introduced by coercion 

Ich habe zwei "Tutorials" über die Verwendung von Anesrake verfolgt, aber ich komme immer noch zu kurz. Dies sind die Tutorials unter:

http://sdaza.com/survey/2012/08/25/raking/

http://surveyinsights.org/wp-content/uploads/2014/07/Full-anesrake-paper.pdf

Jede Hilfe, die Sie auf diese liefern könnte, würde stark sein, sehr geschätzt.

Cheers,

Stu

+0

Haben Sie jemals beschriften einen Weg finden, dies zu umgehen? – Kevin

+0

Leider nicht :( –

+0

hi @StuRichards! War das lösen? Ich bekomme den gleichen Fehler auch. – dixi

Antwort

0

Ich löste nur das gleiche Problem durch meine Daten von Zeichen zu Faktor zu verwandeln.

Sie können versuchen, die folgenden:

testData$GENDER <- as.factor(testData$GENDER) 
testData$AGE <- as.factor(testData$AGE) 
0

Sie müssen die Pegel der Zielvariablen die gleichen wie die Ebenen der Datenvariablen mit dem folgenden Beispiel-

names(targets$agecat1) <- levels(rak2$agecat1) 
names(targets$newpayer) <- levels(rak2$newpayer)