如何解决在R中循环采样以创建许多向量
我正在使用以下R代码进行PCA分析:
sigma1 <- as.matrix((data[,3:22]))
sigma2 <- as.matrix((data[,23:42]))
sample1 <- mvrnorm(n = 250,mu = as_vector(data[,1]),Sigma = sigma1)
sample2 <- mvrnorm(n = 250,2]),Sigma = sigma2)
sampCombined <- rbind(sample1,sample2);
covCombined <- cov(sampCombined);
covCombinedPCA <- prcomp(sampCombined);
eigenvalues <- covCombinedPCA$sdev^2;
我想重复/循环这个,所以我有50个特征值向量。然后,我想找到50个重复的特征值的均值向量。我该怎么做?
解决方法
您可以将整个代码放入一个函数中。假设该函数称为eigen_fun
。
eigen_fun <- function(data) {
sigma1 <- as.matrix((data[,3:22]))
sigma2 <- as.matrix((data[,23:42]))
sample1 <- mvrnorm(n = 250,mu = as_vector(data[,1]),Sigma = sigma1)
sample2 <- mvrnorm(n = 250,2]),Sigma = sigma2)
sampCombined <- rbind(sample1,sample2);
covCombined <- cov(sampCombined);
covCombinedPCA <- prcomp(sampCombined);
eigenvalues <- covCombinedPCA$sdev^2;
return(eigenvalues)
}
运行eigen_fun(data)
一次会给您一组值。要重复50次,可以使用replicate
。
mat <- replicate(50,eigen_fun(data))
mat
中的每一列都是一组值,可以使用mean
来获得每次迭代的colMeans
:
colMeans(mat)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。