dfNAhidariyose_method
moratoriamuo
2018年10月31日
RのデータフレームでNAを削除して左に詰める方法
【用途】
スポーツの試合結果の表があったとき、時折、天候など何らかの理由によって試合日が振り返られることがある。そんなときにNAとなっているところを消して、要素を左に詰めたいという操作をしたくなることがある。そんなときのための技。
【内容】
library(magrittr) #パイプ演算子を愛してるから
df_na <- data.frame(
V1 = c(1,0,1,0),
V2 = c(0,NA,1,NA),
V3 = c(1,1,0,0),
V4 = c(NA,1,NA,0),
row.names = c("A","B","C","D")
)
df_na
## V1 V2 V3 V4
## A 1 0 1 NA
## B 0 NA 1 1
## C 1 1 0 NA
## D 0 NA 0 0
こんなデータフレームがあるとする。これのNAを消して、左に寄せたい。 想定としては、A~Dが選手名やチーム名に相当。V1~V4は時系列で、試合の順番に相当。
df_tume <- apply(df_na,1,na.omit) %>% t()
colnames(df_tume) <- c("v1","v2","v3")
df_tume
## v1 v2 v3
## A 1 0 1
## B 0 1 1
## C 1 1 0
## D 0 0 0
【記憶の検索キーワード】
データフレーム, NA, 処理, 欠損, 欠測, 削除, 詰める, 寄せる, R, 試合, 振替