2023.10.24作成  2024.9.30更新

これから研究を始める高校生と指導教員のために 第2版
探究活動と課題研究の進め方・論文の書き方・口頭とポスター発表の仕方
(これ研)

副読文書

VI-4. アンケート結果の示し方
選択肢から複数を選んで回答できるアンケート

私のサイトでの本書紹介文

共立出版の本書紹介サイト ご購入もこちらからどうぞ

 本章では、選択肢の中から複数を選んで回答できるアンケートのまとめ方を説明します。たとえば、町の食の魅力を調べるため、食べてみたい物を複数選択可でアンケートするとします(この例は、「これ研」には載っていません)。こうしたアンケートでは、棒グラフで回答の分布を示します。では、説明しましょう。

  1. 解析に用いるcsvファイルのRへの読み込み
  2. 作図

 RStudioを起動して下さい。起動方法の詳しい説明は、RStusioの起動の仕方を参照して下さい。そして、作業ディレクトリの指定の説明に従って作業ディレクトリを指定します。

作業ディレクトリの指定

setwd("/Users/sakai/Documents/書籍等原稿/これ研2版/課題研究解析")

# パソコン内での作業ディレクトリの位置がわかっている場合はこの方法が便利です。作業ディレクトリの位置の知り方は作業ディレクトリの表示を参照して下さい。

# あなたの作業ディレクトリの位置を""で囲んで書きます。

# この命令文を実行しておきます。

# 作業ディレクトリの指定

 作図にはtidyverseというものを用います。tidyverseをインストールしてありますか? まだならば、作図の準備の説明に従ってインストールして下さい。インストールしたら、tidyverseをRに読み込みます。

tidyverseのRへの読み込み

library(tidyverse)

# RStudioを起動しこの命令文を実行しておきます。Rstudio起動後、一度だけ実行すればよいです。Rstudioを終了して再び起動したときは再実行する必要があります。

# パッケージ(関数集)のRへの読み込み

 解析では、データフレームの中の特定のデータ列を指定することを行います。指定の方法です。

データフレームの中の特定のデータ列の指定方法

データフレーム名$データ列名

# データフレーム名を書き、$を挟んで、指定したいデータ列名を書きます。

# 実行例

d$Angle.degree
d$Flying.distance.m

# データフレームdに入っているデータ列Angle.degree, flying.distance.mを指定します。

このページの文頭に戻る

1. 解析に用いるcsvファイルのRへの読み込み

 googleフォームで、○○町で食べたい物のアンケート(画面1)を行ったとします。

画面1
○○町で食べてみたい物のアンケート

このアンケート結果をcsvファイル「Food.csv」(画面2)にまとめました(架空データです)。Rで解析作図をするために英語にしています。

画面2
このデータのcsvファイルのダウンロード

 このcsvファイルをダウンロードして、あなたの作業ディレクトリに入れて下さい(作業ディレクトリの指定を参照)。

 ご自身のデータを用いる場合は、そのデータが入ったcsvファイルを作業ディレクトリに入れて下さい。Excelで作ったファイルをcsvファイルに変換する方法は、Excelで作った解析用ファイルのcsv形式での保存を参照して下さい。

 csvファイルをRに読み込み、データフレームに格納します。

csvファイルのRへの読み込み

d <- read.csv("Food.csv")

# csvファイル「Food.csv」を読み込んでデータフレームdに格納します。ファイル名を""で囲みます。ファイル名の拡張子「.csv」も忘れずに書きます。

# データフレームの名称(この例ではd)はお好みのものでよいです。

# Excelで作った解析用ファイルのRへの読み込み

 食べ物の並び順を指定したい場合は以下の命令を実行します。これを実行しないとアルファベット順に並びます。

データの並び順の指定

d$Food <- factor(d$Food, levels=c("Matsutake and saury bowl", "Sushi", "Local specialty beef steak", "Matsutake ramen", "Japanese spider crab", "Mountain vegetable hot pot"))

# 食べ物の並び順を指定します。データフレームd中のデータ列Foodに食べ物の名称が入っています。並べたい順番に名称を書きます。食べ物名は文字情報なので、名称を""で囲みます。

# d$Food中身を上書きするためにd$Foodに再格納します。

# この命令を実行しないとアルファベット順に食べ物の名称が並びます。

# データの並び順の指定

このページの文頭に戻る

2. 作図

 tidyverseを使っての作図の仕方を説明します。tidyverseをRに読み込んでいますか? 読み込んでいない場合は、library(tidyverse)を実行して読み込んで下さい。

 作図の命令文の基本です。

作図の命令文の基本

ggplot(データフレーム名, aes(データ)) +
geom_描く図の英語名() +
書式の命令文 +
書式の命令文

# ggplotで、用いるデータを指定します。

# geom_で、描く図を指定します。

# 書式の命令文を+で繋げます。いくつでも繋げることができます。最後の命令文の後に+は不要です。

 以下では、図の軸の説明が英語の図を描きます。しかし、日本語の論文・プレゼンテーションに使う図の説明文は日本語にしましょう。日本語にする場合の説明も添えているので参照して下さい。


 食べてみたい物のアンケート結果の棒グラフ(画面3-1, 3-2)を作図しましょう。csvファイル「Food.csv」をデータフレームdに格納済みであるとします。格納していない場合は、解析に用いるcsvファイルのRヘの読み込みの説明に従って格納して下さい。ご自身のデータを用いる場合は、そのファイルをデータフレームdに格納して下さい。

画面3-1
画面3-2
棒グラフの作図

# 命令文が続く場合には+で繋げ、最後の命令文の後には+を付けません。

# 必須命令文

ggplot(d, aes(x = Food, y = Answer)) +

# データフレームdを指定します。

# x = Foodとして、食べ物の名称(Matsutake and saury Bowl, Sushiなど)が入っているデータ列Foodをx軸に指定します。xは小文字です。各食べ物をx軸に並べて描きます。

# y = Answerとして、食べたいという回答数のデータが入っているデータ列Answerをy軸に指定します。yは小文字です。

# 末尾の+を忘れないで下さい。

# 棒グラフにおける、作図に用いるデータフレームとデータの指定

geom_bar(stat = "identity") +

# 描く図として棒グラフを指定します。

# stat = "identity"を忘れずに書いて下さい。identityを""で囲みます。

# 末尾の+を忘れないで下さい。ただし、以降の命令文を省略する場合は+を付けず、「geom_bar(stat = "identity")」とします。

# 棒グラフの指定

# 省略してもよい命令文

# 以降の命令文を省略するとデフォルトで自動で描きます。

labs(x = "", y = "Number of answers") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称をNumber of answersにします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_y_continuous(limits = c(0, 210)) +

# y軸(縦軸)を描く範囲を0から210に指定します。棒グラフの場合は、y軸の最小値を必ず0にします。

# x軸・y軸の値の最小値・最大値の指定

theme_classic() +

# 図の背景色を白にします。

# 図のデザインの指定

theme(
axis.text.x = element_text(size = 18, angle = 90, hjust = 1),
axis.title.y = element_text(size = 18),
axis.text.y = element_text(size = 9)
)

# x軸(横軸)の目盛り(axis.text.x)には食べ物の名称(Matsutake and saury Bowl, Sushiなど)が入っています。食べ物とy軸(縦軸)の名称(axis.title.y)の文字の大きさを18に、y軸の目盛り(axis.text.y)の文字の大きさを9に指定します。x軸(横軸)の名称(axis.title.x)は書かないので、その文字の大きさも指定しません。

# 食べ物の名称が長いので、angle = 90と指定して縦に書かせます。hjust = 1と指定して、文字を上揃えにします。

# x軸・y軸の文字の大きさと書き方の指定

軸の説明を日本語にする場合

 画面3-2のように軸の説明を日本語にする場合は、2つの命令文(下記の1つ目と3つ目)を書き替え、1つの命令文(下記の2つ目)を書き足します。他の命令文はそのままでよいです。

labs(x = "", y = "回答数") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称を回答数にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_x_discrete(labels = c("松茸と秋刀魚の丼", "寿司", "特産牛のステーキ", "松茸ラーメン", "タカアシガニ", "山菜鍋")) +

# 書き足す命令文です。labs(x = "", y = "回答数") +の次に書いて下さい。

# x軸(横軸)の各データ群名として松茸と秋刀魚の丼, 寿司, 特産牛のステーキ, 松茸ラーメン, タカアシガニ, 山菜鍋を書き込みます。d$Localityでの並び順(あなたが指定した並び順またはアルファベット順)通りに地域名を並べて下さい。並びが異なっていたらデータの対応がおかしくなります。地域名を""で囲みます。

# x軸にデータ群名を書き込む

theme_classic(base_family = "HiraKakuPro-W3") +

# 日本語のフォントとしてHiraKakuPro-W3を指定します。フォントの名称を""で囲みます。

# HiraKakuPro-W3の他にも、HiraKakuPro-W6, Meiryo, MS Gothic, Osakaなど色々なフォントがあります。お好みのフォントを設定して下さい。

# 図のデザインの指定

このページの文頭に戻る