パッケージrpy2を使用している間、以下のようにfile.pyが定義されているパイソン - rpy2との統合と「アトミックでなければなりません」というエラー
file.R_func.rdc([1,2,3,4,5],[1,3,4,5,6],20,1.67)
実行するとき、私は
Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...) : 'x' must be atomic Traceback (most recent call last): File "", line 1, in File "/usr/lib/python2.7/dist-packages/rpy2/robjects/functions.py", line 86, in call return super(SignatureTranslatedFunction, self).call(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/rpy2/robjects/functions.py", line 35, in call res = super(Function, self).call(*new_args, **new_kwargs) rpy2.rinterface.RRuntimeError: Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...) : 'x' must be atomic
エラーが表示されます。
をfrom rpy2.robjects.packages import SignatureTranslatedAnonymousPackage
string = """
rdc <- function(x,y,k,s) {
x <- cbind(apply(as.matrix(x),2,function(u) ecdf(u)(u)),1)
y <- cbind(apply(as.matrix(y),2,function(u) ecdf(u)(u)),1)
wx <- matrix(rnorm(ncol(x)*k,0,s),ncol(x),k)
wy <- matrix(rnorm(ncol(y)*k,0,s),ncol(y),k)
cancor(cbind(cos(x%*%wx),sin(x%*%wx)), cbind(cos(y%*%wy),sin(y%*%wy)))$cor[1]
}
"""
R_func = SignatureTranslatedAnonymousPackage(string, "R_func")
どのようにxとyをrdc()に渡す必要がありますか?