はだだだだ

定食にサラダは不要だと思う。

MENU

RStudioのpresentation機能を使ってみた

Rでデータ分析の結果をプレゼンテーション形式でまとめる方法としてはR markdownを使用する方法(更にioslides, slidy, beamerの3形式に分かれます)と、presentationを使用する方法があります。

今回はpresentationを使ってみようと思います。

R presentationファイルの新規作成

以下で作成できます。
f:id:hadadada00:20190609034655p:plain

presentationファイルの編集

R markdownの記法で記述できます。
詳細は以下が参考になります。
Authoring R Presentations – RStudio Support

なお、RStudioの右上のビューに、現在のスライドの状態が表示されるため、確認しながら作業できます。
変更を反映したい場合は編集中の.Rpresファイルを上書き保存するだけです。
f:id:hadadada00:20190609034954p:plain

作成したコード

試しにNBAのデータを使って選手の身長について簡単な分析を行ってみました。

NBA players' height
========================================================
author: hadadada00
date: 2019.06.09
autosize: true

```{r setup, echo = FALSE}
library(knitr)
opts_chunk$set(fig.width=8, fig.height=4.5, dpi=300, out.width="1080px", out.height="600px")
```

Average heights since 1947
========================================================
Average height has been gradually increasing.  
Since 1980, it has been fluctutating around 200cm.

```{r echo = FALSE}
library(tidyverse)
library(nbastats)
library(tidyverse)
library(nbastats)

players <- player_data %>% 
  mutate(feet = as.integer(substr(height, 1, 1)),
         inch = as.integer(substr(height, 3, 4)),
         cm = feet * 30.48 + inch * 2.54, 
         pos = substr(position, 1, 1)) %>% 
  select(name, year_start, pos, cm)

players %>% 
  group_by(year_start) %>% 
  summarise(av_cm = mean(cm)) %>% 
  ggplot() +
  geom_line(aes(x = year_start, y = av_cm)) +
  theme(axis.title.y = 
          element_text(angle = 0, vjust = 1)) +
  labs(x = "Entry year",
       y = "Average \n height[cm]",
       title = "NBA playears heights")
```

Heights by position since 1980
========================================================
Average height of Center is over 7ft(213.4cm).

```{r echo = FALSE}
players %>% 
  filter(year_start >= 1980) %>% 
  group_by(pos) %>% 
  summarise(av_cm = mean(cm),
            n = n()) %>% 
  ggplot() +
  geom_bar(aes(x = pos, y = av_cm),
           stat = "identity") +
  theme(axis.title.y = 
          element_text(angle = 0, vjust = 1)) +
  geom_text(aes(x = pos, 
                y = av_cm, 
                label = round(av_cm,1), 
                vjust = 0)) +
  labs(x = "Position",
       y = "Average \n height[cm]",
       title = "Heights by position since 1980")
```

Tallest playears by position
========================================================
Tallest center is Manute Bol.  
Tallest forward is Kristaps Porzingis.  
Tallest Guard is Ben Simmons.  

```{r, echo=FALSE}
library(formattable)
players <- player_data %>% 
  mutate(feet = as.integer(substr(height, 1, 1)),
         inch = as.integer(substr(height, 3, 4)),
         cm = feet * 30.48 + inch * 2.54, 
         pos = substr(position, 1, 1)) %>% 
  select(name, year_start, pos, cm)

table <- players %>% 
  filter(!is.na(pos)) %>% 
  group_by(pos) %>% 
  arrange(desc(cm)) %>% 
  mutate(index = row_number()) %>% 
  filter(index == 1) %>% 
  arrange(pos) %>% 
  select(name, year_start, pos, cm)

formattable(table)
```

Smallest playears by position
========================================================
Smallest center is Gorham Getchell.  
Smallest forward is Dee Gibson.  
Smallest Guard is Muggsy Bogues.  

```{r, echo=FALSE}
table <- players %>% 
  filter(!is.na(pos)) %>% 
  group_by(pos) %>% 
  arrange(cm) %>% 
  mutate(index = row_number()) %>% 
  filter(index == 1) %>% 
  arrange(pos) %>% 
  select(name, year_start, pos, cm)

formattable(table)
```

ファイルの利用方法

RStudioからブラウザを呼び出して(View in Browser)、そのままプレゼンテーションができます。
f:id:hadadada00:20190609035622p:plain

また、結果を共有したい場合はSave As Web Pageを押すとhtmlファイルが出力されます。

今回作成したhtmlファイルは以下においておきます。
NBA players' height

以上