Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R功能prcomp因NA';s值,即使NA';不允许有任何错误_R_Pca_Na - Fatal编程技术网

R功能prcomp因NA';s值,即使NA';不允许有任何错误

R功能prcomp因NA';s值,即使NA';不允许有任何错误,r,pca,na,R,Pca,Na,我正在使用函数prcomp计算前两个主成分。但是,我的数据有一些NA值,因此函数会抛出一个错误。即使帮助文件?prcomp 以下是我的例子: d <- data.frame(V1 = sample(1:100, 10), V2 = sample(1:100, 10)) prcomp(d, center = TRUE, scale = TRUE, na.action = na.omit) d$V1[5] <- NA d$V2[7] <- NA prcomp(d, cente

我正在使用函数
prcomp
计算前两个主成分。但是,我的数据有一些NA值,因此函数会抛出一个错误。即使帮助文件
?prcomp

以下是我的例子:

d <- data.frame(V1 = sample(1:100, 10), V2 = sample(1:100, 10))

prcomp(d, center = TRUE, scale = TRUE, na.action = na.omit)

d$V1[5] <- NA
d$V2[7] <- NA

prcomp(d, center = TRUE, scale = TRUE, na.action = na.omit)
是否可以在PC1和PC2中保留第5行?在我的真实数据集中,我当然有两列以上的变量,其中只有一部分缺失,我不想丢失隐藏在其他值中的其余信息

是的,它看起来像是一个“功能”(bug),
na.action
被完全忽略,除非您使用
公式
界面。这是一个很好的例子

我认为这应该被记录或标记为bug

需要明确的是,这将起作用,因为它访问公式接口:

prcomp(~V1+V2, data=d, center = TRUE, scale = TRUE, na.action = na.omit)

如果您不愿意使用公式接口,另一个解决方案是

prcomp(na.omit(d), center = TRUE, scale = TRUE)

其中包括直接对数据帧应用
na.省略

Ok。感谢公式方法!我同意应该记录(我是R开发列表查询的作者);如果有人愿意的话,最好的方法是对文档提出修改,并将其提交到r-devel列表(和/或r bug跟踪器)中。同样感谢您的解决方案。我刚刚意识到使用na.omit会减少主成分。我刚刚编辑了上面的示例。
prcomp(na.omit(d), center = TRUE, scale = TRUE)