Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
- 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
- l <- ddply(d, c("city", "state", "main_category"), na.rm=T, transform, rank=rank(-stars, ties.method="max"))
- no <- na.omit(dat)
- new <- no[do.call(order, with(no, list(city, state, -stars))),]
- within(new, {
- rank <- Reduce(c, Map(rank, split(-stars, city), ties.method = "min"))
- })
- # name city state stars main_category rank
- # 9 I Houston TX 4.0 Professional Services 1
- # 2 B Houston TX 3.0 Professional Services 2
- # 6 F Lafayette IN 3.5 Mongolian 1
- # 4 D Los Angeles CA 4.0 Local Services 1
- # 5 E Los Angeles CA 3.0 Local Services 2
- # 1 A Pittsburgh PA 5.0 Soul Food 1
- # 7 G Pittsburgh PA 5.0 Doctors 1
- # 8 H Pittsburgh PA 4.0 Soul Food 3
- library(dplyr)
- filter(dat, complete.cases(dat)) %>%
- group_by(city) %>%
- arrange(city, state, desc(stars)) %>%
- mutate(rank= min_rank(desc(stars)))
- # name city state stars main_category rank
- #1 I Houston TX 4.0 Professional Services 1
- #2 B Houston TX 3.0 Professional Services 2
- #3 F Lafayette IN 3.5 Mongolian 1
- #4 D Los Angeles CA 4.0 Local Services 1
- #5 E Los Angeles CA 3.0 Local Services 2
- #6 A Pittsburgh PA 5.0 Soul Food 1
- #7 G Pittsburgh PA 5.0 Doctors 1
- #8 H Pittsburgh PA 4.0 Soul Food 3
- ddply(d, c("city", "state", "main_category"), transform,
- rank=rank(-stars, na.last = TRUE, ties.method="max"))
Add Comment
Please, Sign In to add comment