メインコンテンツにスキップ
モジュール 2 · レッスン 1 / 2コース内の 3/10~12 min
モジュールのレッスン (1/2)

データフレーム

単一タイプの要素のみを含めることができる行列とは異なり、データ フレームは、実世界のデータを分析するために R で最も広く使用されている表形式のデータ構造を表します。

データ フレームは、各列に異なるデータ型 (数値列、テキスト列、論理列など) を含めることができるテーブルですが、すべての列の長さが同じである必要があります。

データフレームの作成

データ フレームを作成するには、data.frame() 関数を使用して列名を定義し、列名にベクトルを割り当てます。

R
# Create a sample data frame
students <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  grade = c(28, 24, 30),
  passed = c(TRUE, TRUE, TRUE)
)
print(students)

列と行へのアクセス

データ フレーム内のデータを抽出して操作するには、いくつかの方法があります。

  1. ドル演算子 $ の使用: 単一の列をベクトルとして抽出できます。
    R
    grades <- students$grade
    # grades will be the vector c(28, 24, 30)
  2. 角括弧の使用 [row, column]: 行列と同様です。
    R
    # First student (first row)
    first_student <- students[1, ]

データのフィルタリング

R の強みの 1 つは、論理条件に基づいてレコードをフィルタリングできることです。

R
# Select only students with grade greater than 25
good_students <- students[students$grade > 25, ]
print(good_students)

ディメンションとデータ フレームの変更

データ フレームのサイズ (行数と列数) を確認するには、dim() 関数を使用できます。

R
# Returns a vector with two elements: c(rows, columns)
dimensions <- dim(students)

$ 演算子を直接使用して、新しい列を追加したり、既存の列を更新したりすることもできます。

R
# Adds a column with grades increased by 2 points
students$bonus_grade <- students$grade + 2

自分で試してみてください

運動#r.m2.l1.e1
試行回数: 0読み込み中…

名前 (値「Alice」と「Bob」) と学年 (値 28 と 24) の 2 つの列を含む、students という名前のデータ フレームを作成します。

エディターを読み込み中…
ヒントを表示

data.frame 関数を使用します: students <- data.frame(name = c('Alice', 'Bob'), Grade = c(28, 24))

3 回の試行後に解決策が利用可能になります

運動#r.m2.l1.e2
試行回数: 0読み込み中…

データ フレームに学生を指定すると、$ 演算子を使用して成績列を抽出し、grades_vector 変数に保存します。

エディターを読み込み中…
ヒントを表示

アメリカのオペレータ $: グレード_ベクトル <- 学生$グレード

3 回の試行後に解決策が利用可能になります

運動#r.m2.l1.e3
試行回数: 0読み込み中…

データ フレームの学生をフィルタリングして、成績が 26 以上の学生のみを含め、結果を Good_students に保存します。

エディターを読み込み中…
ヒントを表示

すべての列を選択するには、カンマを忘れずにstudents[students$grade >= 26, ]を使用します。

3 回の試行後に解決策が利用可能になります

運動#r.m2.l1.e4
試行回数: 0読み込み中…

データ フレーム df を指定すると、dim() 関数を使用してその寸法を取得し、変数 df_dim に保存します。

エディターを読み込み中…
ヒントを表示

dim() 関数を使用します: df_dim <- dim(df)

3 回の試行後に解決策が利用可能になります

運動#r.m2.l1.e5
試行回数: 0読み込み中…

データ フレームの在庫を指定して、価格列と数量列の積として計算される total_value という新しい列を追加します。

エディターを読み込み中…
ヒントを表示

使用: 在庫$total_value <- 在庫$価格 * 在庫$数量

3 回の試行後に解決策が利用可能になります