[R] svytable and na's

Manderscheid Katharina Katharina.Manderscheid at unilu.ch
Fri May 20 09:54:29 CEST 2011


hi thomas

thanks for your reply.
in the documentation of svytable, the argument na.rm=T is mentioned.

however, last night i figured out what went wrong in my tabulation: i had a dataset which i attached and then defined the missing values - of course they were not stored in the data set. 

attach(data)
vote[vote=="Don't know"|vote=="Refusal"]<-NA
detach(data)

so they disappeared when i created a svydesign-object with weighted data and my table looked like this:

> svytable(~gndr+vote, design=data.weight, na.rm=T)
           vote
gndr             Yes       No Not eligible to vote  Refusal Don't know
  Male      453.8726 226.7600             154.1651   0.0000    10.8572
  Female    507.6368 302.3634             145.4426   0.0000    17.9157
  No answer   0.0000   0.0000               0.0000   0.0000     0.0000
           vote
gndr        No answer
  Male         0.0000
  Female       0.0000
  No answer    0.0000

thus the solution is to define the missings in the original data set by using data$variable before creating the svydesign-object. 

data$vote[data$vote=="Don't know"|data$vote=="Refusal"]<-NA

then the svytable looks correctly:
> svytable(~gndr]+vote, design=data.weight, na.rm=T)
              vote[drop = T]
gndr[drop = T]      Yes       No Not eligible to vote
        Male   453.8726 226.7600             154.1651
        Female 507.6368 302.3634             145.4426

or is there a way to define factor levels as na directly in an svydesign-object?

best and thanks
katharina

dr. katharina manderscheid

soziologisches seminar
universität luzern

kasernenplatz 3
6000 luzern 7

tel. ++41 41 228 4657

________________________________________
Von: Thomas Lumley [tlumley at uw.edu]
Gesendet: Donnerstag, 19. Mai 2011 23:48
An: Manderscheid Katharina
Cc: r-help at r-project.org
Betreff: Re: [R] svytable and na's

On Thu, May 19, 2011 at 11:41 PM, Manderscheid Katharina
<Katharina.Manderscheid at unilu.ch> wrote:
> hi,
>
> i am trying to work with the survey package in order to apply survey design weights. the data set i am using - ess - contains missing values.
> my question: when using svytable(~variable1+variable2, design=my.svydesign.object, na.rm=T) the resulting crosstable contains all missings although i defined the na's as such.
>

Could you give more details? There isn't an na.rm= argument to
svytable, so it's not surprising it has no effect, but I don't know
what you mean when you say the table "contains all missings." Perhaps
you could show us the output and say how it differs from what you
expected.

     -thomas

--
Thomas Lumley
Professor of Biostatistics
University of Auckland



More information about the R-help mailing list