Hopefully you guys can help me out. I've been looking all over the web, and I can't find an answer. Here's my data frame:
name    city    state   stars    main_category
A   Pittsburgh  PA       5.0     Soul Food
B   Houston     TX       3.0     Professional Services
C   Lafayette   IN       3.0     NA
D   Los Angeles CA       4.0     Local Services
E   Los Angeles CA       3.0     Local Services
F   Lafayette   IN       3.5     Mongolian
G   Pittsburgh  PA       5.0     Doctors
H   Pittsburgh  PA       4.0     Soul Food
I   Houston     TX       4.0     Professional Services
What I would like for it to do is to output the rank by grouping cities (alphabetically) with state and then rank by the amount of stars gotten. Here's what I was hoping for:
name    city    state   stars    main_category              rank
I   Houston     TX       4.0     Professional Services       1  
B   Houston     TX       3.0     Professional Services       2
F   Lafayette   IN       3.5     Mongolian                   1
D   Los Angeles CA       4.0     Local Services              1
E   Los Angeles CA       3.0     Local Services              2
G   Pittsburgh  PA       5.0     Doctors                     1
A   Pittsburgh  PA       5.0     Soul Food                   1
H   Pittsburgh  PA       4.0     Soul Food                   2
Here's my line of code.
l <- ddply(d, c("city", "state", "main_category"), na.rm=T, transform, rank=rank(-stars, ties.method="max"))
This does not remove the NA that Lafayette has. And I don't know what to put, I also tried na.omit, but when I tried that, the rank column does not show up.
 
     
     
     
    