
縦のデータ (long data)、横のデータ (wide data)
データの準備と要約
使用するパッケージ(パッケージのインストール)
R
library(tidyr)
library(ggplot2)
データセットの作成
R
dat1 <- c(-0.65, -0.58, 1.98, 0.98, 1.55, -0.05, 0.10, -1.35, 1.24, -0.28)
dat2 <- c(1.31, 2.39, 2.87, 2.25, 2.33, 5.32, 3.13, 1.21, 1.50, 0.97)
data <- c(dat1, dat2)
group <- c(
rep("A", length(dat1)),
rep("B", length(dat2))
)
df <- data.frame(group, data)
#View(df)

このサイトではこのタイプを“縦のデータ“と定義します
群が独立している場合の差の検定、分散分散分析などで使用されます
t検定の場合(独立2群の差の検定)
R
t.test(data ~ group, data=df)

もしこのデータが対応のあるデータだったら
便宜上、対応していることを示すためにIDを振ります
R
df$id <- c(rep(c(1:10), 2))
#View(df)

更に、A、Bを前後に書き換えます
R
df$point <- c(rep("前", 10), rep("後", 10))
df2 <- df[, -1]
#View(df2)

R
ggplot(df2, aes(x = point, y = data, group = id)) +
geom_line(aes(color = factor(id))) + # 各idごとに色を変える
geom_point(aes(color = factor(id))) + # 同じく各idごとに色を変える
theme_minimal() +
labs(title = "全IDの前後のデータ比較", x = "時期", y = "データ値", color = "ID")

横データに変換
R
df2yoko <- tidyr::spread(df2, key=point, value=data)
#View(df2yoko)

列が後前になっているので前後に場所移動
R
df3 <- df2yoko[,c(1, 3, 2)]
#View(df3)

ここ”横データ”から対応あるt検定(1標本t検定)
R
t.test(df3$後 - df3$前)

縦データに変換したい場合
R
tidyr::gather(df3, key=point, value=data, -id)

コメント欄 『間違い』や『分かりにくい部分』などのご意見もお寄せください