Ошибка использования распознавания выбросов PCA в HyperSpec
Я считаю HyperSpec очень полезным, однако продолжаю получать сообщения об ошибках при выполнении "Устранение выбросов с помощью анализа основных компонентов (PCA)", следуя инструкциям в руководстве Chondro. Код, который я запускаю ниже:
pca <- prcomp (spc_N2, center = TRUE)
scores <- decomposition (spc_N2, pca$x, label.wavelength="PC",label.spc_N2="score/a.u.")
loadings <- decomposition (spc_N2, t(pca$rotation), scores = FALSE,label.spc_N2="laoding I/a.u.")
pairs (scores [[,,1:20]], pch = 19, cex = 0.5)
Это приводит к графику первых 20 пар очков, как и ожидалось. Когда я пытаюсь определить спектры:
out <- map.identify (scores [,,5])
Я получаю следующую ошибку:
Error in eval(modelRHS[[2]], data, env) : object 'x' not found
Любые предложения будут ценны.
Спасибо Хейли
**редактировать
Я добавил файл примера. Вот код, который я использовал для импорта и предварительной обработки файла:
library(hyperSpec)
#import file
file <- read.table ("t0_CA_bln_adj.csv", header = TRUE, dec = ".", sep = ",")
spc <- new ("hyperSpec", wavelength = file [,1], spc = t (file [, -1]), data = data.frame (sample = colnames (file [, -1])), labels = list ((.wavelength = "cm-1"), spc = "I"))
#initial plot
plot (spc)
#intensity standardize to mean of N2 peak
factors_N2 <- 1/apply(spc[, , 2200~2400],1,mean)
spc_N2<-sweep(spc,1,factors_N2,"*")
plot(spc_N2)
#PCA
pca <- prcomp (spc_N2, center = TRUE)
scores <- decomposition (spc_N2, pca$x, label.wavelength="PC",label.spc_N2="score/a.u.")
loadings <- decomposition (spc_N2, t(pca$rotation), scores = FALSE,label.spc_N2="laoding I/a.u.")
#plot score plots of the first 20 and first 5 PCs
pairs (scores [[,,1:20]], pch = 19, cex = 0.5)
pairs (scores [[,,1:5]], pch = 19, cex = 0.5)
#attempt to identify outliers
out <- map.identify (scores [,,5])
Пример файла: t0_CA_bln_adj