R 为什么我的PCA不工作?

R 为什么我的PCA不工作?,r,pca,R,Pca,我有一个包含200行和20列的数据集,我想在R中使用prcomp执行PCA。但是这不起作用,因为当我执行strx时,我的第一列被列为整数。第一列的数字介于0和4之间,表示用于获取数据集的加热类型。因此,这也必须用于PCA,因为我知道加热类型对其他19列有影响,但我无法启动PCA,因为它被列为整数。我怎样才能解决这个问题 该列有重要信息,我也想处理这些信息,但我不能,因为它是以整数而不是数字列出的,当我尝试以数字列出时,它会显示错误:无法强制列表对象键入“double” 我用计算机解决了这个问题

我有一个包含200行和20列的数据集,我想在R中使用prcomp执行PCA。但是这不起作用,因为当我执行strx时,我的第一列被列为整数。第一列的数字介于0和4之间,表示用于获取数据集的加热类型。因此,这也必须用于PCA,因为我知道加热类型对其他19列有影响,但我无法启动PCA,因为它被列为整数。我怎样才能解决这个问题

该列有重要信息,我也想处理这些信息,但我不能,因为它是以整数而不是数字列出的,当我尝试以数字列出时,它会显示错误:无法强制列表对象键入“double”

我用计算机解决了这个问题

dat_test$heating<-as.numeric(as.character(dat_test$heating))
str(dat_test)

我总共有2个NA值。这应该仍然适用于na.rm或na.action=na.omit,但不适用

我知道你在调查什么。一些层次模型似乎很流行。所以prcomp没有na.rm参数。函数为此使用na.action

所以,在研究了这个具体的解决方案之后——有一点——站在我的肩膀上,我发现了这个。我想这对你有用。我还建议您深入研究您正在尝试的方法。搜索会发现比你所知道的更多的东西。干杯


prcompna.omitdat_test,scale=TRUE

您看过这个讨论吗?我想,在第一部分中对您的问题进行编辑后,这可能是重复的。@LJW对不起。。。我找到了你上面提到的帖子,除了我自己的搜索,我什么都没做。我很高兴看到它已得到证实。干杯
data.prcomp<-prcomp(dat_test,scale.=TRUE,na.rm=TRUE)
Error in svd(x, nu = 0) : infinite or missing values in 'x'