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
最後の 3 つの prcomp() 呼び出しで、次のエラーが発生します。
Error in svd(x, nu = 0) : infinite or missing values in 'x'
rpy2 経由で prcomp() の NA 値を処理するために na.action (またはその他の手段) を適切に使用する方法がわかりません。単なる構文の問題であることを願っています。
助けてくれてありがとう。