[R] Help in getting info from a DataFrame

David Winsemius dwinsemius at comcast.net
Wed Feb 2 15:05:25 CET 2011


On Jan 31, 2011, at 3:44 AM, ADias wrote:

>
>
> 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"

Right. You appended a factor variable to a character variable and got  
the numeric representation for the Aveiro values which is 1 and it  
then got coerced into "1" because the firts element offered to the c()  
function was character.
>
>
> why "1" and not "Aveiro"?
>
> 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

The max of lapsales$qtd is 3 to it is looking up the third store  ==  
Setubal.

-- 
David.

>
> 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list