我正在尝试对140多个时间点和空间上的海带种群数据进行PCA。但是,我的主要组件函数中只有38个点,而我的数据却有140个点。PC函数不应该与您给prcomp的数据行数一样长吗?
我已经在非常相似的数据矩阵上使用了这个确切的代码,就像数据一样,PC函数中有140个点。
setwd("C:/Users/hamiltsa/Desktop/OSU/Kelp/Data2")
#Import my dataframe with 140 rows (timepoints) and 13 columns (measurements for each segment of coastline)
d = read.csv("Kelp_segments_quarters_maxes_wide.csv")
head(d)
Seg1 Seg6 Seg7 Seg8 Seg15 Seg17 Seg18 Seg28 Seg32 Seg36 Seg38 Seg44 Seg53
1 NA NA NA NA NA NA NA NA NA NA NA NA NA
2 7362 1341 297 11664 9045 14301 8109 0 567 0 17001 2412 1152
3 13788 2160 1665 37611 170568 30501 292887 0 0 0 0 324 0
4 NA NA NA NA NA NA NA NA NA NA NA 459 0
5 3942 0 0 8325 30951 NA 2799 0 0 NA 567 144 1017
6 NA NA 0 4446 7632 32571 10188 0 0 0 13932 3906 0
PCA2 = prcomp(na.omit(d3), scale = TRUE, center = TRUE) #Don't need to set scale = TRUE because all variables have some units (i.e percent cover)
summary(PCA2)
plot(PCA2$x[,'PC1'], type = "l")
当我绘制我的PCA的第一台PC时,我希望它显示具有140个时间点的功能。但是,它显示具有38个时间点的功能。我是误解了PCA的工作原理还是我的代码有问题?