1

外れ値を値 -9999 に置き換える方法が必要です。私のデータでは -9999 は値が欠落していることを意味します。これは、NA の代わりにこのタイプのデータに通常使用される単なる規則です。

43列のamfというデータフレームがあります。列ごとに移動し、99 パーセンタイルを超える値と 1 パーセンタイルを下回る値をそれぞれ -9999 に置き換える必要があります。ただし、年の列など、いくつかの列をスキップする必要があります。

apply 関数と lapply 関数をさまざまな方法で使用してみましたが、間違って使用しているに違いありません。これが私が試したことです

amf_out <- apply(amf[,4:43],2, which(amf[,4:43] > quantile(amf[,4:43, .99)))

amf_out <- lapply(1:length(amf), function(i) amf[which(amf[,i] > quantile(amf[,1],.99))] <- 
-9999)

amf[which(amf[,4:43] > quantile(amf[,4:43], .99))] <- -9999

論文はどれも機能していません。助言がありますか?

4

3 に答える 3

1

R で作業している場合はNA、欠損値に使用します。それ以外のものは、コーディングの頭痛の種となり、バグの原因になります。別の欠損値を必要とする他のソフトウェアで使用するためにデータをエクスポートする場合にのみ、別の欠損値を使用してください。 write.table(および のようなそのバリアントwrite.csv) には、naこの値を指定できる引数があります。

write.csv(amf_out, "my file", na = "-9999")
于 2014-02-07T17:17:34.890 に答える