/ / 0(ゼロ)の値を持つPCAを実行する方法 - r、pca

0(ゼロ)の値を持つPCAを実行する方法 - r、pca

毎月の降水量でRでPCAを行いたい。冬には雨が降らないので、私の列のかなりの値は0です。

PCAを実行すると、次のメッセージがコンソールに表示されます。cov.wt(z)のエラー: "x"には有限値のみが含まれている必要があります

私はここでRが私に言っているのは、私の0値が気に入らないということです。

だから、私は1.0000000001すべてを掛けることによって、私の0値を "実数"に変更しようとしました。しかし、私がそれをして新しい値でRを再実行しても、同じメッセージがポップアップします。

私は、私が(私はできません)または何らかの形でそれらを代入して欠損値に対処できるPCAコードを使用しています。しかし、私の0は実際の値であり、欠損値ではありません。

私はウェブ上でどのように多くの情報を見つける欠損値やNA値は扱いますが、ゼロ値を扱う方法はありません。どのように私はこれを行うことができます誰も提案がありますか?助けてくれて本当にありがとうございます!

回答:

回答№1は0

私の推測は、 "covのエラーです。wt(z): "x"は有限の値のみを含む必要があります "は、一部の共分散が非有限である、つまりNA / NaNであるという苦情を受けています。

コード例:

latent = rnorm(10)
data = data.frame(rep(0,10), #10 0"s
latent+rnorm(10),  #latent and noise
latent+rnorm(10),     #
latent+1.5*rnorm(10)) #
colnames(data) = c("zeros","var1","var2","var3")

library(psych)
principal(data)     #error!
principal(data[-1]) #no errors