我试图在5000列和30行的数据框架上进行PCA
Sample <- read.table(file.choose(), header=F,sep="\t")
Sample.scaled <- data.frame(apply(Sample,2,scale))
pca.Sample <- prcomp(Sample.scaled,retx=TRUE)`
Run Code Online (Sandbox Code Playgroud)
得到了错误
Error in svd(x, nu = 0) : infinite or missing values in 'x'
sum(is.na(Sample))
[1] 0
sum(is.na(Sample.scaled))
[1] 90
Run Code Online (Sandbox Code Playgroud)
尝试使用以下内容忽略所有na值
pca.Sample <- prcomp(na.omit(Sample.scaled),retx=TRUE)
Run Code Online (Sandbox Code Playgroud)
这给出了以下错误
Error in svd(x, nu = 0) : 0 extent dimensions
Run Code Online (Sandbox Code Playgroud)
有报告说,na.action需要给出公式,因此尝试如下
pca.Sample <- prcomp(~.,center=TRUE,scale=TRUE,Sample, na.action=na.omit)
Run Code Online (Sandbox Code Playgroud)
现在收到以下错误
Error in prcomp.default(x, ...) :
cannot rescale a constant/zero column to unit variance
Run Code Online (Sandbox Code Playgroud)
认为问题可能是因为"我的一个数据列是常量.常量的方差是0,然后缩放将除以0,这是不可能的."
但不确定如何解决这个问题.任何帮助非常感谢....
我想用R做PCA
我的数据有10,000列和90行,我使用prcomp函数来执行PCA.试图用prcomp结果准备一个双标图,我遇到了10,000个绘制的向量覆盖我的数据点的问题.双标图是否有任何隐藏向量表示的选项?
要么
我可以用它plot来获得PCA结果.但我不确定如何根据我的数据点标记这些点,数据点编号为1到90.
Sample<-read.table(file.choose(),header=F,sep="\t")
Sample.scaled<-data.frame(apply(Sample_2XY,2,scale))
Sample_scaled.2<-data.frame(t(na.omit(t(Sample_2XY.scaled))))
pca.Sample<-prcomp(Sample_2XY.scaled.2,retx=TRUE)
pdf("Sample_plot.pdf")
plot(pca.Sample$x)
dev.off()
Run Code Online (Sandbox Code Playgroud) 我可以使用绘图功能。可以使用plot获得pca结果。但不确定如何根据我的rownames(Sample)编号为1至90的数据点标记这些点
Sample<-read.table(file.choose(),header=F,sep="\t")
Sample.scaled<-data.frame(apply(Sample_2XY,2,scale))
Sample_scaled.2<-data.frame(t(na.omit(t(Sample_2XY.scaled))))
pca.Sample<-prcomp(Sample_2XY.scaled.2,retx=TRUE)
pdf("Sample_plot.pdf")
plot(pca.Sample$x)
dev.off()
Run Code Online (Sandbox Code Playgroud) r ×3