2015-05-29 4 views
0

Это отличный пример того, как использовать ggplot2 для создания карты тепла «R; путь: Rheatmap, который предоставляет ссылку на исходные данные и исходный код.Rescale для NBA heatmap: dplyr эквивалентно функции plyr?

Был использован ggplot2: ggplot2, который выдает код ggplot2.

В ключевых точках код ggplot2 использует reshape2 и plyr.

nba.m <- melt(nba) 
nba.m <- ddply(nba.m, .(variable), transform,rescale = rescale(value)) 

Моя цель состоит в дублировании этих расчетов с использованием tidyr и dplyr.

nba.m <- melt(nba) 

имеет tidyr эквивалент в:

nba.g <- gather(nba, Name) 

Что такое dplyr эквивалент этой линии?

nba.m <- ddply(nba.m, .(variable), transform,rescale = rescale(value)) 

eipi10 любезно предложил

nba.m2 <- nba.m %>%group_by(Name) %>% mutate(rescale=rescale(value)) 

Однако, похоже, расчет Rescale не встречающихс в совершенно таким же образом:

> head(nba.m) 
     Name variable value rescale 
1 Dwyane Wade   G 79 0.9473684 
2 LeBron James   G 81 0.9824561 
3 Kobe Bryant   G 82 1.0000000 
4 Dirk Nowitzki   G 81 0.9824561 
5 Danny Granger   G 67 0.7368421 
6 Kevin Durant   G 74 0.8596491 
> head(nba.m2) 
Source: local data frame [6 x 4] 
Groups: Name 

     Name Name.1 value rescale 
1 Dwyane Wade  G 79 0.9634146 
2 LeBron James  G 81 0.9878049 
3 Kobe Bryant  G 82 1.0000000 
4 Dirk Nowitzki  G 81 0.9878049 
5 Danny Granger  G 67 0.8170732 
6 Kevin Durant  G 74 0.9024390 
> 

Что не хватает?

Спасибо, Matt

+2

'nba.m = nba.m%>% group_by (переменный)%>% мутирует (перемасштабировать = перемасштабировать (значение))' – eipi10

ответ

2

Я думаю, вам нужно написать dplyr::mutate, не mutate.

Предполагаю, что вы загрузили plyr и dplyr в тот же сеанс. dplyr и plyr являются конфликтными следующими объектами: arrange, count, desc, failwith, id, mutate, rename, summarise, summarize