[R] Odp: Re : Odp: Re : table function

Petr PIKAL petr.pikal at precheza.cz
Tue Aug 25 11:53:21 CEST 2009


Hi

r-help-bounces at r-project.org napsal dne 25.08.2009 11:28:31:

> Â 
> Thank you Peter,
> in my vector Z i have missing value ""NA" and i want to count its number 
in the vector 
> i had did alla this i know the difference between a numeirc and a factor 


OK. If you know difference between factor and numeric you probably have 
seen
?factor
where is note about how to make NA an extra level

#Here is z
z<-c(10,100, 1000, 1200, 2000, 2200, 3000, 3200, 5000, 6000)
#let's put some NA values into it
z[c(2,5)] <-NA
#let's make a cut
z.c<-cut(z, breaks = c(-Inf, 1000, 3000, Inf), labels = c("0 - 1000", 
">1000 - 3000", ">3000"))
#as you see there are NA values but they are not extra level
z.c
 [1] 0 - 1000     <NA>         0 - 1000     >1000 - 3000 <NA> 
 [6] >1000 - 3000 >1000 - 3000 >3000        >3000        >3000 
Levels: 0 - 1000 >1000 - 3000 >3000
is.na(z.c)
 [1] FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE

# so let's try what help page says
> factor(z.c, exclude=NULL)
 [1] 0 - 1000     <NA>         0 - 1000     >1000 - 3000 <NA> 
 [6] >1000 - 3000 >1000 - 3000 >3000        >3000        >3000 
Levels: 0 - 1000 >1000 - 3000 >3000 <NA>
# wow we have NA as extra level, let's do table
table(factor(z.c, exclude=NULL))

    0 - 1000 >1000 - 3000        >3000         <NA> 
           2            3            3            2 

Regards
Petr


> the goal of this exercice that to count the number of missing value, 
number 
> betwwen 0-1000 , 1000-3000, >3000.
> 
> Thank you again for your help
> 
> 
> 
> 
> ________________________________
> De : Petr PIKAL <petr.pikal at precheza.cz>
> 
> Cc : r-help at r-project.org
> Envoyé le : Mardi, 25 Août 2009, 11h15mn 23s
> Objet : Odp: [R] Re : table function
> 
> Hi
> 
> r-help-bounces at r-project.org napsal dne 25.08.2009 10:08:36:
> 
> > Hi Mark,
> > 
> > 
> > Thank you for your answer !! it works but if i have "NA" in the vector 
z
> what 
> > i shoud do to count its number in Z?
> 
> You do not have NA in z, you manage to convert it somehow to factor. 
> Please try to read about data types and its behaviour. Start with this 
> chapter
> 2.8 Other types of objects
> in R intro manual which I suppose you have in doc folder of R program 
> directory. You possibly can convert it back to numeric by
> 
> e.g.
> 
> DF$z <- as.numeric(as.character(DF$z))
> 
> but I presume you need to check your original data maybe by
> 
> str(your.data) what mode they are and why they are factor if you expect 
> them numeric.
> 
> Regards
> Petr
> 
> > x      y        z
> > > 1Â  Â  0Â  Â  Â  100
> > > 5Â  Â  1Â  Â  Â  1500
> > > 6Â  Â  1Â  Â  Â  NA
> > > 2Â  Â  2Â  Â  Â  500
> > > 1Â  Â  1Â  Â  Â  NA
> > > 5Â  Â  2Â  Â  2000
> > > 8Â  Â  5Â  Â  4500
> > > 
> > 
> > i did the same but it gives me this error  message:
> >Â  [0 - 1000] [1000 - 3000]Â  Â  Â  Â  >3000 
> >Â  Â  Â  Â  Â  Â  0Â  Â  Â  Â  Â  Â  0Â  Â  Â  Â  Â  Â  0 
> > Warning message:
> > In inherits(x, "factor") : NAs introduced by coercion
> > 
> > 
> > Thank you 
> > 
> > 
> > ________________________________
> > De : Marc Schwartz <marc_schwartz at me.com>
> > 
> > Cc : r-help at r-project.org
> > Envoyé le : Lundi, 24 Aoűt 2009, 18h33mn 52s
> > Objet : Re: [R] table function
> > 
> > On Aug 24, 2009, at 10:59 AM, Inchallah Yarab wrote:
> > 
> > > hi,
> > > 
> > > i want to use the function table to build a table not of frequence 
> (number 
> > of time the vareable is repeated in a list or a data frame!!) but in 
> function of classes
> > [[elided Yahoo spam]]
> > > 
> > > example
> > > 
> > > x      y        z
> > > 1Â  Â  0Â  Â  Â  100
> > > 5Â  Â  1Â  Â  Â  1500
> > > 6Â  Â  1Â  Â  Â  1200
> > > 2Â  Â  2Â  Â  Â  500
> > > 1Â  Â  1Â  Â  Â  3500
> > > 5Â  Â  2Â  Â  2000
> > > 8Â  Â  5Â  Â  4500
> > > 
> > > i want to do a table summerizing the number of variable where z is 
in
> > [0-1000],],[1000-3000], [> 3000]
> > > 
> > > thank you very much for your help
> > 
> > 
> > See ?cut, which bins a continuous variable.
> > 
> > > DF
> >  x y    z
> > 1 1 0Â  100
> > 2 5 1 1500
> > 3 6 1 1200
> > 4 2 2Â  500
> > 5 1 1 3500
> > 6 5 2 2000
> > 7 8 5 4500
> > 
> > 
> > > table(cut(DF$z, breaks = c(-Inf, 1000, 3000, Inf),
> >Â  Â  Â  Â  Â  Â  labels = c("0 - 1000", ">1000 - 3000", ">3000")))
> > 
> >Â  Â  0 - 1000 >1000 - 3000Â  Â  Â  Â  >3000
> >Â  Â  Â  Â  Â  2Â  Â  Â  Â  Â  Â  3Â  Â  Â  Â  Â  Â  2
> > 
> > HTH,
> > 
> > Marc Schwartz
> > 
> > 
> > 
> >Â  Â  [[alternative HTML version deleted]]
> > 
> > ______________________________________________
> > 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.
> 
> 
> 
>    [[alternative HTML version deleted]]
> 
> ______________________________________________
> 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.



More information about the R-help mailing list