第一步睦刃,對所有樣本進行中心化
第二步十酣,求特征協(xié)方差矩陣
第三步耸采,求協(xié)方差矩陣的特征值和特征向量
第四步虾宇,將特征值按照從大到小的順序排序旭贬,選擇其中最大的k個稀轨,然后將其對應的k個特征向量分別作為列向量組成特征向量矩陣
第五步岸军,將樣本點投影到選取的特征向量上(用歐氏距離方程計算點間距離)
library(factoextra)
library(stringr)
data <- t(TPM)
all_0_col <- which(apply(data, 2, var)==0) # 刪除方差為0的列
data.pca <- prcomp(data[,-all_0_col], scale. = T) #對數(shù)據(jù)標準化后做PCA佣谐,這是后續(xù)作圖的文件
## 畫圖
# 設置分組:
group=str_sub(colnames(TPM),1,1) ## 樣本
fviz_pca_ind(data.pca,
col.ind=group,
mean.point=F, # 去除分組的中心點
label = "none", # 隱藏樣本標簽
addEllipses = T, # 添加邊界線
legend.title="Groups",
ellipse.type="confidence", # 繪制置信橢圓
ellipse.level=0.9) +
# palette = c("#CC3333", "#339999"))+ #Cell配色哦
theme(panel.border = element_rect(fill=NA,color="black", size=1, linetype="solid"))#加個邊框
參考
http://www.reibang.com/p/fc6fb815c170
https://blog.csdn.net/weixin_59909329/article/details/123985532