グループに基づいて欠損値を代入しようとしています。 median()関数が数値データを必要とするエラーが発生していますが、データがすべて数値であるため問題が見えません。ここには最小限再現可能な例があります。中央値が置換され、数値データが必要
set.seed(123)
cluster = sample(seq(1,10),1000,replace=TRUE)
V1 = sample(c(runif(100),NA),1000,replace=TRUE)
V2 = sample(c(runif(100),NA),1000,replace=TRUE)
df = as.data.frame(cbind(cluster,V1,V2))
df_fixed = by(df,df$cluster,function(x){replace(x,is.na(x),median(x, na.rm=TRUE))})
エラーが返さ:
median.default(X、na.rm = TRUE)でエラーが発生しました:必要な数値データ
は、このコードはので、しかし動作します問題は中央値関数である。
df_fixed = by(df,df$cluster,function(x){replace(x,is.na(x),1)})
使用してください 'set.seed'ようにする等sample' runif'、' 'のような機能を使用して再現 – Sotos
' by'小さなdata.framesにDFを切断された - ありませんクラス数値。列方向のメジアンまたは全体的な中央値に置き換えたいですか? –
私はグループごとに列の中央値を置き換えることを試みています。したがって、グループ1で不足している場合は、グループ1の中央値に置き換えてください。 – user137698