0
私はコールでオプションの引数を使用するFortranサブルーチンを持っています。FortranサブルーチンからRラッパーにオプションの引数を渡す方法
subroutine data (n,ns,alpha,covmat,x,y)
integer, intent(in):: n,ns
double precision, intent(in) :: alpha
double precision, intent(in), optional ::covmat(n,ns)
double precision, intent(out) :: x(n),y(n)
....
end subroutine data
私はこのサブルーチンのために、次のRラッパーを試してみましたが、エラーメッセージました:私は.Fortran()の呼び出しで正しく引数を渡すかどうかわからないんだけど
Error in array(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x), :
'data' must be of a vector type, was 'NULL'
を。オンラインで役立つものは何も見つかりませんでした。
data1 <- function(n,ns,alpha,covmat=NULL){
tmp <- .Fortran("data",
n = as.integer(n),ns= as.integer(ns)
alpha=as.numeric(alpha),covmat=as.vector(covmat),
x=as.double(rep(0,n)),y=as.double(rep(0,n)))
)
}
result <- list(x=tmp$x, y=tmp$y)
return(result)
}
「それはうまくいかない」とはどういう意味ですか?質問でこのフレーズを使用しないでください。何も意味しません。それはいくつかの価値を返しましたか?どちらの価値?それは何かを印刷しましたか?それはクラッシュしましたか?エラーメッセージはありますか? –
@VladimirF:コメントありがとう。私は次のポストのためにそれを念頭に置いています。エラーメッセージを表示します:「配列のエラー(x、c(length(x)、1L)、if(!isnn(names(x))) x)、: 'データ'はベクトルタイプで、 'NULL'だったはずです "。 – Vineetha
あなたの投稿を編集してこの情報を含めることができます。 –