仅读取一次数据并对不同的变量应用相同的函数

时间:2016-06-25 12:37:33

标签: r pca

我正在研究的数据集 - DATA有6个不同的国家/地区,r_1..r_13指明原因。我想在此数据集上应用PCA,以找出每个国家/地区的重要原因 我想问的问题是,如何在不读取每个国家/地区的文件的情况下为每个国家/地区运行PCA,而不是如上所示阅读整个文件。 另外,请检查我用于执行PCA的代码 -

    pca<-prcomp(numeric,center=T,scale=T)
    summary(pca)
    eigen_val<-pca$sdev ^2
    sum(eigen_val)
    prop_var<-round(eigen_val/sum(eigen_val),4)
    round(sum(prop_var[1:13]),4)
    load<-pca$rotation

在计算旋转矩阵之后,我将检查哪些PC与哪些观察变量最相关,因此我将决定变量的重要性。(基于 - 超过PC的数量)与变量相关的更多是变量的意义) 请建议这种方法是否正确! 谢谢!

1 个答案:

答案 0 :(得分:0)

这是解决方案的一个简单起点,您可以调整以获得所需格式的结果。我们假设您正在使用iris中的R数据集,并希望为每个pca执行Species,有点像您想要在您的数据中按每个国家/地区pca进行操作。

library(caret)
data(iris)
Iris <- split(iris, iris$Species)
for(i in 1:length(Iris)){
  assign(paste0("pca", i), prcomp(Iris[[i]][which(names(iris)!="Species")], center=T, scale.=T))
}