[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