※資料作成は岩嵜航さん(東北大学)にご協力いただきました。

(左右キーで進みます!)

自分のデータを扱おう!

データを使える形に整えよう

出発点となるデータはさまざま

  • 実験ノート、フィールドノート、データベース、エクスポート

Rで自分で作ったデータファイルを読む

  • “使える形”のcsvファイルとは?
  • (読み込み方は後で教えます)

作図や解析に使えるデータ形式はほぼ決まっている

  • 行と列の数が一致
  • 最初の一行が列名
  • 列名を指定すれば好きなグラフが書ける!

整然データと雑然データとは?

データファイルは整然(tidy)に!

人が見やすい形ではなく機械が判別しやすい形に

  • 1セル1データ
  • 異なる型(文字、数字)は混ぜない
  • 行列の規則性を保つ


①1セル1データとなっているか

  • 仕入れ額と出荷額のセルに複数のデータが入力されている。
  • こういう場合は、年度ごとに列・行を分け、各セルにデータを分離して入力する。

①1セル1データとなっているか

  • これも売上金額と費用総額が1つのセルに入力されている。
  • 費用/売上を計算したいときなどに困るよね

②数値と文字列が混ざっていないか

  • 「円」、「▲(マイナス表記)」、「,(カンマ)」が文字列として入力されているため、数値計算ができない

②数値と文字列が混ざっていないか

  • 数値データに、空白が含まれると、エラーとなる。
  • また、昇順・降順等の並べ替えも正確にできない。

②数値と文字列が混ざっていないか

③セルの結合をしていないか

  • セルが結合(又は分離)されており、機械判読に適していない。
  • 1件のデータは、横1行で表記し、セルの結合又は不必要な分離を行わないこと。

③セルの結合をしていないか

④空白や改行等で体裁を整えていないか

  • スペースや改行等で体裁を整えると、検索性が低下する。

④空白や改行等で体裁を整えていないか

  • スペース(本来の情報とは無関係な情報)を挿入することで体裁を整えている。
  • 機械は「A」と「□A」は違う意味だと判断する

④空白や改行等で体裁を整えていないか

  • 項目の体裁を整えるため改行が使用されているが、その改行に意味があるのか機械は判別が出来ない。

⑤項目名等を省略していないか

  • ヒトであれば省略されている部分の意味を判断できるが、機械は判断ができない。

⑤機種依存文字を使用していないか

  • 機種依存文字は利用環境によっては正しく表示されない。
  • 英語で開発されたソフトウェアは、日本語だとエラーが出る可能性も。
  • データもなるべく英語で作ろう!

⑥データが分断されていないか

  • データの分断は機械判読に支障をきたす。

⑥データが分断されていないか

⑥1シートに複数の表がないか

  • 1シートに複数の表が掲載されている。これでは解析できない。
  • 1つの表を1シートに分割して収録すること。

tidyであればあとは何でもできる

そういえばペンギンデータも整然だったね

library(palmerpenguins)               #読み込みはRを起動するたびに必要
head(penguins)
## # A tibble: 6 × 8
##   species island bill_length_mm bill_depth_mm flipper_length_… body_mass_g sex  
##   <fct>   <fct>           <dbl>         <dbl>            <int>       <int> <fct>
## 1 Adelie  Torge…           39.1          18.7              181        3750 male 
## 2 Adelie  Torge…           39.5          17.4              186        3800 fema…
## 3 Adelie  Torge…           40.3          18                195        3250 fema…
## 4 Adelie  Torge…           NA            NA                 NA          NA <NA> 
## 5 Adelie  Torge…           36.7          19.3              193        3450 fema…
## 6 Adelie  Torge…           39.3          20.6              190        3650 male 
## # … with 1 more variable: year <int>

【重要】解析に使えるデータ形式

  • 整然データであること!
  • 保存形式について
    • Excel → 別名で保存 → フォーマット:CSV(コンマ区切り)(.csv)
  • 値について
    • アルファベットか数字で(日本語は非推奨)
    • スペースを入れない(入れるならアンダーバー)
    • アンダーバー以外の記号を使わない(+-*/など)
    • 空欄はダメ。値がない場合はNAと入力。
  • 列名について
    • 列名は1行だけ。2行以上を列名にはできない
    • 列名の先頭は数字にしない(数字にすると’’がつけられる)

自分のデータを読み込もう!

データ読み込みに便利なreadr

  • tidyverseパッケージ群のひとつ
  • 読み込みが高速
  • 安全なtibbleで読み込める
  • どうしてもエクセルで読みたかったらreadxl

readrを使ってみよう!

文法(1)ファイルを読み込む

  • read_csv(file =【ファイル名を文字列で】)
    • ファイル名は文字列なので""で囲む
      • 拡張子(.csv)は省略しない
      • csv形式のみ
      • 日本語が入力されているcsvを読み込むときは
        • read_csv(“file.csv”, locale = readr::locale(encoding = “CP932”))
    • ファイルは作業フォルダに入れておくこと!
    • 【任意の名前】 = read_csv()で データフレームに格納
    • read.csv(Rのデフォルト関数)とは別
      • read.csvよりもread_csvでの読み込みを推奨

readrを使ってみよう!

[練習問題]

  • とある植物の開花数に関する以下のメモをエクセルに入力し、CSV形式で保存しよう
    • p.22のルールを守ること
    • 保存は作業フォルダに
  • 保存したcsvをread_csv()で読み込み、中身を確認head()しよう

readrを使ってみよう!

[練習問題]

library(tidyverse)               #読み込みはRを起動するたびに必要
data = read_csv("test.csv")
head(data)
## # A tibble: 0 × 25
## # … with 25 variables: plant_id <chr>, march_2021 <chr>, april_2021 <chr>,
## #   may_2021 <chr>, june_2021
1 <chr>, 25 <chr>, 60 <chr>, 42 <chr>, 83
2 <chr>,
## #   4...10 <chr>, 10 <chr>, 30 <chr>, 21
3 <chr>, 81 <chr>, 92 <chr>,
## #   NA...16 <chr>, 52
4 <chr>, 13 <chr>, NA...19 <chr>, 15 <chr>, 12
5 <chr>,
## #   94 <chr>, 23 <chr>, 4...24 <chr>, 0 <chr>
  • readrで読んだデータはデータフレームの値の型が表示される!

readrを使ってみよう!

文法(2)ファイルを書き出す

  • write_csv(【データフレームの名前】, file =【ファイル名】)
    • ファイル名は文字列なので""で囲む
      • 拡張子(.csv)は省略しない
      • csv形式のみ
    • ファイルは作業フォルダに保存される
    • 日本語が含まれたcsvファイルの場合は…
      • read_csv(“file.csv”, locale = readr::locale(encoding = “CP932”)
write_csv(data, file = "test2.csv")
  • 作業フォルダを見るとtest2.csvがあるはず

自分のデータを扱うために

データが取れたよ!

  • よく考えてデータファイルを作ろう
    • とにかく規則的な形, 値にしておくこと
    • 整然データを意識して
    • csv形式で保存
  • (他人のデータだったらtidyrなどで整えよう)

どう読み込むんだっけ

  • read_csv()で読み込めるよ

Step5:統計解析をしよう

いよいよ自由課題スタート!(1/3)

まず班ごとに研究テーマを設定する

  1. 何を明らかにしたいのか?(大きな目的)
    • 例:植物の多様性はどのような環境条件に影響されるのか?
  2. そのために何を調べるのか?(研究の目的)
    • 例:特定の地点の植物種数と環境条件の関係を調べる
      • 1.の目的と合致しているか?
  3. 検証したい仮説は何か?
    • 例:日当たりが良いほうが植物種が多い
      • 仮説の根拠は?
      • データがどうなったら仮説が支持されるのか?

いよいよ自由課題スタート!(2/3)

どのようにデータをとるか決める(現実的な範囲で…)

  • 自分たちでデータを取る
    • ちょっと大変だけど楽しい
    • 計画したとおりのデータが得られる
    • 例:日当たりが良い30地点と悪い30地点の種数を調べる
      • 日当たりが良い/悪いはどう定義するか?
      • 植物種はどのように同定するか?
  • 誰かが調べたデータを調べる
    • 良いデータを見つければ大量のデータが得られる
    • 調べたいことにぴったりのデータがあるとは限らない
    • データの読み込みが意外と大変(csvじゃなかったりする)

いよいよ自由課題スタート!(3/3)

計画をするにあたって気をつけたいこと

  • サンプル数(N数)は多いほど良い!

    • 10条件各N = 10より、2条件各N=50のほうが絶対いい!
    • N = 5以下はほとんど解析不可能。
  • 違いが微妙なものより極端なものを比較する!

  • 注目する要因以外のばらつきの存在もお忘れなく

    • ばらつきが多い場合はより多くのN数が必要
    • 注目する要因以外はなるべく均一に
    • 一定の基準でデータを絞る方が良い場合も(ただし調べたいことに影響しないように注意が必要)

計画ができたら教員 or TAに確認してもらう