Re: [R] subscripting in data frames with NA

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Tue, 24 Jun 2008 12:11:08 +0100 (BST)

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

______________________________________________
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.
Received on Tue 24 Jun 2008 - 11:27:14 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 24 Jun 2008 - 12:30:59 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive