
縦のデータ
使用するパッケージ(パッケージのインストール)。パッケージtidyverseには、tidyr、dplyr、ggplot2などが含まれます。
R
library(tidyverse)
データセットの作成
R
ID <- rep(c(1:10), 2)
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)
period <- c(
rep("pre", length(dat1)),
rep("post", length(dat2))
)
long <- data.frame(ID, period, data)
print(long)
> print(long)
ID period data
1 1 pre -0.65
2 2 pre -0.58
3 3 pre 1.98
4 4 pre 0.98
5 5 pre 1.55
6 6 pre -0.05
7 7 pre 0.10
8 8 pre -1.35
9 9 pre 1.24
10 10 pre -0.28
11 1 post 1.31
12 2 post 2.39
13 3 post 2.87
14 4 post 2.25
15 5 post 2.33
16 6 post 5.32
17 7 post 3.13
18 8 post 1.21
19 9 post 1.50
20 10 post 0.97
このサイトではこのタイプを“縦のデータ“と定義します。
縦のデータを横のデータに変換
上記で作成した縦のデータ(long)を横のデータ(wide)に変換します
R
wide <- tidyr::spread(long, key=period, value=data)
wide <- wide %>% select(ID, pre, post)
print(wide)
> print(wide)
ID pre post
1 1 -0.65 1.31
2 2 -0.58 2.39
3 3 1.98 2.87
4 4 0.98 2.25
5 5 1.55 2.33
6 6 -0.05 5.32
7 7 0.10 3.13
8 8 -1.35 1.21
9 9 1.24 1.50
10 10 -0.28 0.97
横のデータを縦のデータに変換
R
tate_2 <- gather(wide, key=period, value=data, -ID)
print(tate_2)
> print(tate_2)
ID period data
1 1 pre -0.65
2 2 pre -0.58
3 3 pre 1.98
4 4 pre 0.98
5 5 pre 1.55
6 6 pre -0.05
7 7 pre 0.10
8 8 pre -1.35
9 9 pre 1.24
10 10 pre -0.28
11 1 post 1.31
12 2 post 2.39
13 3 post 2.87
14 4 post 2.25
15 5 post 2.33
16 6 post 5.32
17 7 post 3.13
18 8 post 1.21
19 9 post 1.50
20 10 post 0.97
縦データの主な利点
複数の変数の関連性の分析: 異なる種類の変数(例えば、介入の有無、測定されたアウトカムなど)を時間軸に沿って同時に分析することが可能です。
経時データの処理: 同一被験者に関するデータを時間軸に沿って追跡することが容易です。これにより、時間経過に伴う変化やトレンドを効果的に分析できます。
欠損データの扱い:時系列データにおける欠損値を扱う際に、縦データ形式ではその被験者の他の時間点の情報を利用して、欠損値の補完や推定が行いやすくなります(混合効果モデルを使用した場合)。
経時データの処理(関連のあるデータ)の例
R
ggplot(tate_2, aes(x = period, y = data, group = ID)) +
geom_line(aes(color = factor(ID))) + # Change color for each ID
geom_point(aes(color = factor(ID))) + # Change color for each ID similarly
theme_minimal() +
labs(title = "Comparison of Pre and Post Data for All IDs", x = "Period", y = "Data Value", color = "ID")

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