2016-10-27 9 views
1

私は、NAsを含むより大きなデータセットでいくつかの列をPCAしようとしています。 NAsを削除すると、項目数の不一致が生じ、ラベル情報にデータセットを使用できなくなります。これをどうやって解決するのですか?NAsを持つPCAがサブセットとデータセットの間に不一致を生成する

> ef <- sepData[c(4, 5, 6, 7, 8, 9, 10)] 
> autoplot(prcomp(na.omit(ef)), data = sepData, colour = 'species', label = TRUE, label.size = 3) 
Error in data.frame(..., check.names = FALSE) : 
arguments imply differing number of rows: 27, 24 

sepDataには、各行のサンプル名が含まれています。 NAsを省略すると、いくつかの列の順序が失われます。

+1

あなたの欠損値を補間してもよいですか? – Nate

+0

関連記事:[here](http://stackoverflow.com/questions/12078291/)と[here](http://stats.stackexchange.com/questions/35561) – zx8754

答えて

0

これを回避する方法として、欠損値を列(変数)メジアンに置き換える方法があります。 zooパッケージには、このために便利な機能があります。na.aggregate()あなたの行列がmatと呼ばれているとしましょう。もちろん

library(zoo) 
na.aggregate(mat, FUN = median) 

自分の価値観を最も適切に転嫁するために不足している理由は、あなたが実際にそれらの多くがある場合は特に、を見つける必要があります。

+0

これはPCAに偏っていませんか? 解剖中に組織が破壊されたため、Hehは欠けています。 :D – user974887

関連する問題