我正在尝试对超过 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 的工作原理还是我的代码有问题?