データの読み込み

CSVファイルの読み込み

研究で使うデータは、多くの場合CSVファイル(カンマ区切りテキスト)で提供されます。

readrパッケージを使う

tidyverseに含まれるreadrパッケージのread_csv()関数を使います。

library(tidyverse)

# CSVファイルを読み込む
data <- read_csv("data.csv")

日本語を含むファイル

日本語を含むファイルで文字化けする場合は、エンコーディングを指定します。

data <- read_csv("data.csv", locale = locale(encoding = "CP932"))

データの確認

読み込んだデータを確認する方法はいくつかあります。

head() と tail()

最初の数行、最後の数行を表示します。

head(data)       # 最初の6行
head(data, 10)   # 最初の10行
tail(data)       # 最後の6行

glimpse()

データの構造をコンパクトに表示します。

glimpse(data)

summary()

各変数の要約統計量を表示します。

summary(data)

View()

RStudioでスプレッドシート形式で表示します。

View(data)

練習用データ

この教材では、以下のようなデータを使って練習します。

サンプルデータの作成

library(tidyverse)

# サンプルデータを作成
students <- tibble(
  id = 1:10,
  name = c("田中", "鈴木", "佐藤", "山田", "伊藤",
           "渡辺", "中村", "小林", "加藤", "吉田"),
  grade = c(3, 2, 4, 3, 2, 4, 3, 2, 4, 3),
  score = c(78, 82, 91, 65, 74, 88, 70, 95, 83, 77),
  group = c("A", "B", "A", "B", "A", "B", "A", "B", "A", "B")
)

students
# A tibble: 10 × 5
      id name  grade score group
   <int> <chr> <dbl> <dbl> <chr>
 1     1 田中      3    78 A    
 2     2 鈴木      2    82 B    
 3     3 佐藤      4    91 A    
 4     4 山田      3    65 B    
 5     5 伊藤      2    74 A    
 6     6 渡辺      4    88 B    
 7     7 中村      3    70 A    
 8     8 小林      2    95 B    
 9     9 加藤      4    83 A    
10    10 吉田      3    77 B    

データの確認

# 構造を確認
glimpse(students)
Rows: 10
Columns: 5
$ id    <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
$ name  <chr> "田中", "鈴木", "佐藤", "山田", "伊藤", "渡辺", "中村", "小林", "加藤", "吉田"…
$ grade <dbl> 3, 2, 4, 3, 2, 4, 3, 2, 4, 3
$ score <dbl> 78, 82, 91, 65, 74, 88, 70, 95, 83, 77
$ group <chr> "A", "B", "A", "B", "A", "B", "A", "B", "A", "B"
# 要約統計量
summary(students)
       id            name               grade          score      
 Min.   : 1.00   Length:10          Min.   :2.00   Min.   :65.00  
 1st Qu.: 3.25   Class :character   1st Qu.:2.25   1st Qu.:74.75  
 Median : 5.50   Mode  :character   Median :3.00   Median :80.00  
 Mean   : 5.50                      Mean   :3.00   Mean   :80.30  
 3rd Qu.: 7.75                      3rd Qu.:3.75   3rd Qu.:86.75  
 Max.   :10.00                      Max.   :4.00   Max.   :95.00  
    group          
 Length:10         
 Class :character  
 Mode  :character  
                   
                   
                   

データ型

Rには主に以下のデータ型があります:

説明
numeric 数値 1.5, 100
character 文字列 "hello", "田中"
logical 論理値 TRUE, FALSE
factor カテゴリ 順序のあるカテゴリ
# 型の確認
class(students$score)  # 数値
[1] "numeric"
class(students$name)   # 文字列
[1] "character"
class(students$grade)  # 数値
[1] "numeric"

特定の列・行を取り出す

列の取り出し

# $ を使う
students$score
 [1] 78 82 91 65 74 88 70 95 83 77
# [[]] を使う
students[["score"]]
 [1] 78 82 91 65 74 88 70 95 83 77

行の取り出し

# 1行目
students[1, ]
# A tibble: 1 × 5
     id name  grade score group
  <int> <chr> <dbl> <dbl> <chr>
1     1 田中      3    78 A    
# 1〜3行目
students[1:3, ]
# A tibble: 3 × 5
     id name  grade score group
  <int> <chr> <dbl> <dbl> <chr>
1     1 田中      3    78 A    
2     2 鈴木      2    82 B    
3     3 佐藤      4    91 A    

条件で絞り込む

# スコアが80以上の行
students[students$score >= 80, ]
# A tibble: 5 × 5
     id name  grade score group
  <int> <chr> <dbl> <dbl> <chr>
1     2 鈴木      2    82 B    
2     3 佐藤      4    91 A    
3     6 渡辺      4    88 B    
4     8 小林      2    95 B    
5     9 加藤      4    83 A    
ノート

次の「tidyverse入門」では、より直感的な方法でデータを操作する方法を学びます。