我有一个包含50个以上变量的数据帧data
,我正在尝试使用caret
包在R中执行PCA。
library(caret)
library(e1071)
trans <- preProcess(data,method=c("YeoJohnson", "center","scale", "pca"))
如果我正确理解了这段代码,它会应用YeoJohnson转换(因为data
中有零),标准化data
而不是应用PCA(默认情况下,该函数只保留PC必须解释数据中至少95%的可变性
但是,当我使用prcomp
命令时,
model<-prcomp(data,scale=TRUE)
我可以获得更多输出,例如打印summary
或执行plot(data, type = "l")
我无法在trans
中执行此操作。有谁知道caret
包中是否有任何函数产生与prcomp
相同的输出?
答案 0 :(得分:2)
您可以使用predict
函数访问主要组件。
df <- predict(trans, data)
summary(df)
您与prcomp
的输出不完全相同:caret
使用prcomp()
时,它会丢弃原始的prcomp
类对象,但不会返回它。