快捷搜索: 王者荣耀 脱发

R语言学习——主成分分析

a <- read.table(/Users/zhangzhishuai/Downloads/24 lesson24 R主成分分析/24_pca/BMI.txt, header = T,sep = 	, row.names = 1)
data<- a[,-3]
data
cor(data$height,data$weight) # 查看相关性系数
data.pca <- prcomp(data,scale. = T) # 主成分分析 scale:数据值差异太大,进行处理
data.pca
summary(data.pca)
screeplot(data.pca, type = lines) # 画图看做几个主成分,一般取图中拐点
biplot(data.pca) # PCA图(丑)
data.pca$x
m <- as.factor(a$gender)
plot(data.pca$x[,1:2],col=c(red,blue)[m],pch=c(21,24)[m]) # 2维绘图,21和24指的是形状
legend(bottomlef,legend=levels(m),col = c(red,blue),pch = c(21,24)) #图例
abline(v=0, col=(red)) # 中间加一条线

library(scatterplot3d)
scatterplot3d(data.pca$x[,1:3] #取前三列
              ,type = h # 竖线
              ,pch = 20 # 形状
              ,color = c(red,blue)[m] # 根据男女分颜色
              ,angle = 45 # 旋转角度
              ,main = PCA_3D # 图表题
              ,cex.symbols = 2 # 控制形状的大小
              ,mar = c(5.1,4.1,4.1,8.1) # 四周大小
              )
legend(topleft,legend = levels(m),col = c(red,blue),pch = 19
       ,xpd = TRUE # 加到原来图上去
       , bty = n # 不要边框
       )

BMI.txt name height weight gender BMI tom 180 75 male 23.1481481481481 cindy 165 58 female 21.3039485766759 jimmy 175 72 male 23.5102040816327 sam 173 68 male 22.7204383708109 lucy 160 60 female 23.4375 lily 165 55 female 20.2020202020202

经验分享 程序员 微信小程序 职场和发展