Я пытаюсь сделать анализ PCA с помощью функции princomp
в R.Omit NA и данные вменение, прежде чем делать анализ PCA с помощью R
Ниже приведен пример кода:
mydf <- data.frame (
A = c("NA", rnorm(10, 4, 5)),
B = c("NA", rnorm(9, 4, 5), "NA"),
C = c("NA", "NA", rnorm(8, 4, 5), "NA")
)
out <- princomp(mydf, cor = TRUE, na.action=na.exclude)
Error in cov.wt(z) : 'x' must contain finite values only
Я попытался удалить NA
из набора данных, но это не сработает.
ndnew <- mydf[complete.cases(mydf),]
A B C
1 NA NA NA
2 1.67558617743171 1.28714736288378 NA
3 -1.03388645096478 9.8370942023751 10.9522215389562
4 7.10494481721949 14.7686678743866 4.06560213642725
5 13.966212462717 3.92061729913733 7.12875100279949
6 -1.91566982754146 0.842774330179978 5.26042516598668
7 0.0974919570675357 5.5264365812476 6.30783046905425
8 12.7384749395121 4.72439301946042 2.9318845479507
9 13.1859349108349 -0.546676530952666 9.98938028956806
10 4.97278207223239 6.95942086859593 5.15901566720956
11 -4.10115142119221 NA NA
Даже если я могу удалить NA
«S не может быть помощь, как раз строки или столбца имеет, по меньшей мере, один недостающих значений. Есть ли какой-либо метод R, который может навязывать данные, делающие анализ PCA?
UPDATE: на основе ответов:
> mydf <- data.frame (A = c(NA, rnorm(10, 4, 5)), B = c(NA, rnorm(9, 4, 5), NA),
+ C = c(NA, NA, rnorm(8, 4, 5), NA))
> out <- princomp(mydf, cor = TRUE, na.action=na.exclude)
Error in cov.wt(z) : 'x' must contain finite values only
ndnew <- mydf[complete.cases(mydf),]
out <- princomp(ndnew, cor = TRUE, na.action=na.exclude)
Это работает, но defult na.action
не работает.
Есть ли какой-либо метод, который может навязывать данные, так как в реальных данных у меня есть почти каждый столбец с отсутствующим значением в них? Результат такого пропуска NA
даст мне ~ 0 строк или столбцов.
Мой ответ ниже описывает ваш «маленький» вопрос о том, как заставить аргумент 'na.action' работать. Для вашего большого вопроса о том, как действовать, когда ваши данные содержат много NA, быстрый поиск в Google по «недостающим значениям pca» вызывает массу полезных хитов, включая [эту функцию R] {http: //rss.acs.unt .edu/RDoc/библиотека/pcaMethods/HTML/bpca.html}. Если вам все еще нужна помощь после проведения некоторых исследований, я бы перешел к http://stats.stackexchange.com/, так как это действительно статистический вопрос. –
@ JoshO'Brien Спасибо, Джош, я ценю вашу помощь. Я был в тумане по этой проблеме ... теперь у меня есть четкий путь – jon