各グループの欠損値を個別に置き換えるにはどうすればよいですか?
再現可能な例:
mydata=structure(list(group1 = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), group.2 = c(1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L,
2L, 1L, 2L, 1L, 2L), x1 = c(20L, 4L, 91L, NA, 94L, 69L, 38L,
NA, 29L, 69L, 55L, 86L, 81L, 11L, NA, 12L, 65L, 90L, 74L, NA,
49L, 90L), x2 = c(44L, 94L, NA, 1L, 67L, NA, 73L, 22L, 44L, 24L,
NA, 54L, 70L, 65L, 97L, 10L, 97L, NA, 74L, 97L, 34L, 29L)), class = "data.frame", row.names = c(NA,
-22L))
今、グループなしで欠損値を置き換える方法を見つけました。
library(dplyr)
mydata %>% mutate_at(vars(starts_with("x1")), funs(ifelse(is.na(.) & is.numeric(.) ,mean(., na.rm = TRUE),.)))
しかし、私は各グループ(group1、group2)を個別に交換する必要があります。
小さなデータセットに編集する
structure(list(group1 = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L,
2L, 2L, 2L), group.2 = c(1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L,
2L, 2L, 2L), x1 = c(63L, 67L, 57L, NA, 65L, 75L, 57L, 80L, 42L,
NA, 35L, 80L), x2 = c(46L, 1L, NA, 41L, 80L, NA, 74L, 73L, NA,
13L, 83L, NA)), class = "data.frame", row.names = c(NA, -12L))
回答 1 件
関連記事
- 2つのグループの年次値のデータフレームを、Rのグループとサブグループの両方の間の共通期間にフィルター処理しますか?
- 複数のフィールドで値が欠落しているデータセットフィールドの結合
- pandasデータフレームの欠落値の修正
- Seaborn:ヒートマップで欠落している値に注釈を付ける
- in句を使用するときにSQLクエリで欠落している値を取得する方法
- 欠落している値を中央値に置き換え、欠落している文字を最も高い頻度で置き換える
- 欠落している値をJuliaDataframeの別の列の値に置き換えます
- 変数間で欠落している値が同じID変数に由来するかどうかをどのように識別できますか?
- ハッシュの配列を欠落値で埋めます
- データをグループに分割し、Tableauで使用されている値と使用可能な値を表示します