データフレームは、異なる型のデータを含む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に置換