理学療法士がまとめたノート

統計学備忘録 since2016

Rを使って統計学を勉強するブログです

データフレームの列を入れ替えて、欠損値のある行を除外する

忘れないうちに書いときます
欠損値のあるデータセットを用意します

x <- LETTERS[1:10]
y <- c(1,2,NA,2,4,NA,5,1,2,5)
z <- c(1,2,2,1,1,2,2,1,1,1)
xyz <- data.frame(x,y,z)

   x  y  z
1  A  1  1
2  B  2  2
3  C NA  2
4  D  2  1
5  E  4  1
6  F NA  2
7  G  5  2
8  H  1  1
9  I  2  1
10 J  5 NA

Z列とY列を入れ替えます

a <- data.frame(xyz[,1])
b <- data.frame(xyz[,2])
c <- data.frame(xyz[,3])
xzy <- data.frame(a,c,b)
colnames(xzy) <- c("x","z","y")

   x  z  y
1  A  1  1
2  B  2  2
3  C  2 NA
4  D  1  2
5  E  1  4
6  F  2 NA
7  G  2  5
8  H  1  1
9  I  1  2
10 J NA  5

欠損値を含む行を全て除外します

xzy_cc <- complete.cases(data.frame(xzy))  #欠損値を含む行にFALSEを返す関数・・・だからxzy_ccは完璧(complete)な行
dataset <- xzy[xzy_cc,]

  x z y
1 A 1 1
2 B 2 2
4 D 1 2
5 E 1 4
7 G 2 5
8 H 1 1
9 I 1 2

この処理は暗記してたがよさそうです