R言語でデータフレームの基礎:作成、操作、並べ替え

データフレームは、異なる型のデータを含む2次元の表形式のデータ構造です。以下に、データフレームを作成する基本的な方法を示します。

2. データフレームの作成

名前 <- c("田中", "佐藤", "鈴木")
年齢 <- c(25, 30, 28)
身長 <- c(170, 165, 180)

df <- data.frame(名前, 年齢, 身長)
print(df)

リストからデータフレームを作成

リスト <- list(
名前 = c("田中", "佐藤", "鈴木"),
年齢 = c(25, 30, 28),
身長 = c(170, 165, 180)
)

df <- as.data.frame(リスト)
print(df)

外部ファイルからデータフレームを読み込む

# CSVファイルの場合
df <- read.csv("データ.csv")

# Excelファイルの場合(readxlパッケージが必要)
library(readxl)
df <- read_excel("データ.xlsx")

3. データフレームの基本操作

データフレームの構造を確認

str(df)
summary(df)

列の追加

df$体重 <- c(65, 58, 70)

行の追加

新規行 <- data.frame(名前="山田", 年齢=35, 身長=175, 体重=68)
df <- rbind(df, 新規行)

列名の変更

names(df)[names(df) == "身長"] <- "Height"

4. データの選択と抽出

特定の列を選択

print(df$名前)
print(df[, c("名前", "年齢")])

特定の行を選択

print(df[2,])

条件に基づく選択

print(df[df$年齢 > 27,])

5. データフレームの結合

縦方向の結合

df1 <- data.frame(名前 = c("田中", "佐藤"), 年齢 = c(25, 30))
df2 <- data.frame(名前 = c("鈴木", "山田"), 年齢 = c(28, 35))
結合後 <- rbind(df1, df2)

横方向の結合

df1 <- data.frame(名前 = c("田中", "佐藤", "鈴木"))
df2 <- data.frame(身長 = c(170, 165, 180))
結合後 <- cbind(df1, df2)

6. データフレームの並べ替え

単一列での並べ替え

df_sorted <- df[order(df$年齢),]

複数列での並べ替え

df_sorted <- df[order(df$年齢, -df$身長),]

7. 行と列の削除

特定の行の削除

df_new <- df[-2,]  # 2行目を削除

特定の列の削除

df_new <- df[, !names(df) %in% c("体重")]

8. データフレームの変換

列の型変換

df$年齢 <- as.numeric(df$年齢)

欠損値の処理

df[is.na(df)] <- 0  # 欠損値を0に置換