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

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

Return to HOME

自分のデータを扱おう!

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

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

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

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

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

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

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

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

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

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

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


Return to HOME

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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>
Return to HOME

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

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

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

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

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

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での読み込みを推奨
Return to HOME

readrを使ってみよう!

[練習問題]

  • とある植物の開花数に関する以下のメモをエクセルに入力し、CSV形式で保存しよう
    • p.22のルールを守ること
    • tidyrで横→縦にできるので、完全に整然じゃなくてもOK
      • 元の表から変えすぎるとそこで入力ミスをする場合も…
    • 保存は作業フォルダに
  • 保存したcsvをread_csv()で読み込み、中身を確認head()しよう
Return to HOME

readrを使ってみよう!

[練習問題]

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

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があるはず
Return to HOME

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

データが取れたよ!

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

どう読み込むんだっけ

  • read_csv()で読み込めるよ

Step6:統計解析をしよう

自由課題に向けて

Return to HOME