首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在rpy2中省略prcomp()中的nA值?

在rpy2中省略prcomp()中的nA值?
EN

Stack Overflow用户
提问于 2012-03-01 04:17:22
回答 1查看 833关注 0票数 0
代码语言:javascript
复制
import numpy
import rpy2
from rpy2 import robjects
import rpy2.robjects.numpy2ri
from rpy2.robjects.packages import importr
stats = importr('stats')
r = robjects.r
rpy2.robjects.numpy2ri.activate()

a = numpy.array( [ [1, 5, numpy.nan, 4, 5], [2, 6, 8, 7, 8] ] )
b = numpy.array( [ [1, 5, 8, 4, 5], [2, 6, 8, 7, 8] ] )

std = r.sd( a[0], **{'na.rm': 'TRUE'} )              # works fine
pca = stats.prcomp( b )                              # works fine
pca = stats.prcomp( a )                              # error
pca = stats.prcomp( a, **{'na.rm': 'TRUE'} )         # error
pca = stats.prcomp( a, **{'na.action': 'na.omit'} )  # error

最后三个prcomp()调用给出了这个错误:

代码语言:javascript
复制
Error in svd(x, nu = 0) : infinite or missing values in 'x'

我谷歌了一大堆,想不出如何通过rpy2正确使用na.action (或其他方法)来处理prcomp()中的NA值。我希望这只是一个语法问题。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2012-03-08 02:16:08

"na.action“必须是函数,而不是带函数名的字符串。下面的代码可能会起到作用:

代码语言:javascript
复制
pca = stats.prcomp( a, **{'na.action': stats.na_omit} )

注意,NA != NaN。从您的示例中可以看出:

代码语言:javascript
复制
ar = robjects.vectors.Matrix(a)

print(ar)
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5  NaN    4    5
[2,]    2    6    8    7    8
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9505952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档