霞と側杖を食らう

ほしいものです。なにかいただけるとしあわせです。[https://www.amazon.jp/hz/wishlist/ls/2EIEFTV4IKSIJ?ref_=wl_share]

RのデータフレームでNAを削除して左に詰めたいときの覚書

 

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, 試合, 振替