PCA

knitr::opts_chunk$set(echo = TRUE)
# setwd("C:/R/BB201608/pca")
# install.packages("factoextra","rgl")
library("factoextra")
library("rgl")
Dong.pca <- function(filename) {
  # read data
    df <- read.table(filename, header = T, sep = ",", quote = "")

    # rm variables of max == min
    df2 <- df[, !apply(df, MARGIN = 2, function(x) max(x, na.rm = TRUE) == min(x, 
        na.rm = TRUE))]

    # pca
    df.pca <- prcomp(df2[, -c(1:2)], scale = TRUE)

    # plot 2d
    pdf.filename <- paste(filename, ".pdf")
    pdf(pdf.filename)
    # par(mfrow=c(1,2))
    print(fviz_screeplot(df.pca, ncp = 10))
    plot(df.pca$x[, 1:2], pch = 20, col = df$Types)
    abline(h = 0, v = 0, lty = 2)
    text(df.pca$x[, 1], df.pca$x[, 2], labels = df$Species, cex = 0.7, pos = 3)

    # plot 3d
    df$Types <- as.integer(df$Types)
    plot3d(df.pca$x[, 1:3], col = df$Types, type = "s", size = 0.8)
    save.filename <- paste(filename, ".png")
    rgl.snapshot(save.filename)
    dev.off()
}
myfile<-c("18.csv","21.csv")

for (i in 1:length(myfile)) {
  Dong.pca(myfile[i])
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值