[R] Help in getting info from a DataFrame

Petr PIKAL petr.pikal at precheza.cz
Mon Jan 31 10:55:16 CET 2011


Hi

r-help-bounces at r-project.org napsal dne 31.01.2011 09:44:00:

> 
> 
> David Winsemius wrote:
> > 
> > 
> > On Jan 30, 2011, at 5:27 PM, ADias wrote:
> > 
> >> dados<- 
> >> data 
> >> .frame 
> >> (Store 
> >> = 
> >> c 
> >> ("Setubal 
> >> ","lx 
> >> ","Aveiro 
> >> ","Coimbra 
> >> ","Aveiro","Evora","Aveiro","Coimbra","Setubal"),Prod=c("Bloco
> >> Desenho","Bloco
> >> Desenho 
> >> ","Tinteiro 
> >> ","Régua 
> >> ","Lapiseira 
> >> ","Regua 
> >> ","Tinteiro","Lapiseira","Lapiseira"),qtd=c(2,1,2,1,3,1,1,1,1))
> > 
> > 
> > See if this is a more useful approach:
> > 
> >  > lapsales <- dados[dados$Prod=="Lapiseira",  ]
> >  > lapsales[which.max(lapsales[ , "qtd" ]), "Store"]
> > [1] Aveiro
> > Levels: Aveiro Coimbra Evora lx Setubal
> > 
> > -- 
> > David Winsemius, MD
> > West Hartford, CT
> > 
> > ______________________________________________
> > 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.
> > 
> > 
> Hi,
> 
> thank you for the help.
> 
> Two questions I would like to make.
> 
> Suppose I have put your answer on an object like this:
> 
> r<-lapsales[which.max(lapsales[ , "qtd" ]), "Store"]
> 
> so 
> >r
> [1] Aveiro
> Levels: Aveiro Coimbra Evora lx Setubal
> 
> and suppoese I wish to add this year result to previous years results:
> 
> results<-c("Lx","Setubal")
> so I did:
> 
> results<-c(results,r)
> 
> and what I get is:
> 
> > results
> [1] "Lx"      "Setubal" "1" 
> 
> why "1" and not "Aveiro"?

you has to distinct between factor and character objects. Factor is vector 
of integers with labels and concatenation add this integer but not a 
label. Transform factor to character vector.

results<-c(results,as.character(r))

Regards
Petr


> 
> Second question is:
> 
> > lapsales
>     Store      Prod qtd
> 5  Aveiro Lapiseira   3
> 8 Coimbra Lapiseira   1
> 9 Setubal Lapiseira   1
> > lapsales[max(lapsales$qtd),"Store"]
> [1] Setubal
> Levels: Aveiro Coimbra Evora lx Setubal
> 
> why Setubal and not Aveiro?
> 
> many thanks
> AD
> -- 
> View this message in context: 
http://r.789695.n4.nabble.com/Help-in-getting-
> info-from-a-DataFrame-tp3247740p3248276.html
> Sent from the R help mailing list archive at Nabble.com.
> 
> ______________________________________________
> 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