[R] subscripting in data frames with NA

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Jun 24 13:11:08 CEST 2008


On Tue, 24 Jun 2008, Agustin Lobo wrote:

> Dear list:
>
> Given
>> str(b3)
> 'data.frame':	159 obs. of  6 variables:
> $ index_pollution : num   8.228 10.513  0.549  0.915 10.416 ...
> $ position_descrip: chr  "2" "2" "2" NA ...
> $ position_geo    : chr  "3" "0" "3" "3" ...
> $ institution     : Factor w/ 3 levels "digesa","mem",..: 3 3 3 3 3 3 3 3 3 
> 3 ...
> $ p_desc_no3      : chr  "2" "2" "2" NA ...
> $ p_geo_no3       : chr  "3" "0" "3" "3" ...
>
> I try to subscript but get:
>
>> b3[b3[,3]=="3",5] <-NA
> Error in `[<-.data.frame`(`*tmp*`, b3[, 3] == "3", 5, value = NA) :
>  missing values are not allowed in subscripted assignments of data frames
>
> Why? What's  the correct way of doing this operation?

Probably b3[, 3] contains an NA. (It does in the next version) .  If so, 
you want b3[, 3] %in% "3" .

>
> Actually, I previously tried with:
>> str(b2)
> 'data.frame':	159 obs. of  6 variables:
> $ index_pollution : num   8.228 10.513  0.549  0.915 10.416 ...
> $ position_descrip: Factor w/ 3 levels "0","1","2": 3 3 3 NA NA NA 3 3 3 3 
> ...
> $ position_geo    : Factor w/ 4 levels "0","1","2","3": 4 1 4 4 3 NA 3 3 3 4 
> ...
> $ institution     : Factor w/ 3 levels "digesa","mem",..: 3 3 3 3 3 3 3 3 3 
> 3 ...
> $ p_desc_no3      : Factor w/ 3 levels "0","1","2": 3 3 3 NA NA NA 3 3 3 3 
> ...
> $ p_geo_no3       : Factor w/ 4 levels "0","1","2","3": 4 1 4 4 3 NA 3 3 3 4 
> ...
>
>> table(b2$p_desc_no3)
>
> 0  1  2
> 42 44 66
>
> and
>
>> levels(b2$p_desc_no3)[levels(b2$position_geo)=="3"] <- NA
>
> which does not result into error but leaves b2$p_desc_no3 unchanged:
>
>> table(b2$p_desc_no3)
>
> 0  1  2
> 42 44 66
>
>
> what am i doing wrong?
>
> Thanks
>
> Agus
>
>
>
> -- 
> Dr. Agustin Lobo
> Institut de Ciencies de la Terra "Jaume Almera" (CSIC)
> LLuis Sole Sabaris s/n
> 08028 Barcelona
> Spain
> Tel. 34 934095410
> Fax. 34 934110012
> email: Agustin.Lobo at ija.csic.es
> http://www.ija.csic.es/gt/obster
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list