2016-11-16 139 views
0

R.net(C#コードからの入力データ)経由でRスクリプトを実行すると、 "subscript out of bounds"エラーが発生します。不思議なことに、同じ入力データがExcelによって提供されたときにRscriptを実行すると、うまく動作します。なぜ起こるのかについてのアイデアはありますか?私はC#コードから "vardata"を送ります。ここ*評価中のR.netエラー - "subscript out of bounds"

***Error in my.data.var.mat.1st[Pos.loc] <- my.data.var.1st : 
    subscript out of bounds*** 

*

は、コードと関連付けられた情報です。

vardata <- structure(list(t = c(10, 10, 10, 10), f1j = c(0.25, 0, 0, 0.25 
), f2j = c(0.25, 0, 0, 0.25), f3j = c(0.25, 0, 0, 0.25), f4j = c(0.25, 0, 0.25, 0.25), f5j = c(0, 0.25, 0, 0.25)), .Names = c("t", "f1j", "f2j", "f3j", "f4j", "f5j"), row.names = c(NA,-4L), class = "data.frame") 

tolerance <- 0 
Tau.Fij.opt.mat.1st <- ifelse(vardata > tolerance ,vardata,0) 
Pos.list <- Tau.Fij.opt.mat.1st[Tau.Fij.opt.mat.1st>0] #get all values>0 
Pos.loc <- which(Tau.Fij.opt.mat.1st > 0, arr.ind = TRUE) #get locations>0     
Zero.list <- Tau.Fij.opt.mat.1st[Tau.Fij.opt.mat.1st==0] 
Zero.loc <- which(Tau.Fij.opt.mat.1st == 0, arr.ind = TRUE) 
my.data.var.1st <- Pos.list  # variables to be evaluated 

Error.func.1st <- function(my.data.var.1st,Pos.loc,Zero.loc,Zero.list) #my.data.var.1st,Pos.loc,Zero.loc,Zero.list 
{ 
    #First convert vector(my.data.var) to MATRIX aand send it to calculate new MATRIX 
    my.data.var.mat.1st <- matrix(,nrow = 4,ncol = 6,byrow = TRUE) 

    my.data.var.mat.1st[Pos.loc] <- my.data.var.1st 
    if(length(Zero.loc)>0) 
    { 
    my.data.var.mat.1st[Zero.loc] <- Zero.list 
    } 

Error <- my.data.var.mat.1st 
    } 

AA <- Error.func.1st(my.data.var.1st,Pos.loc,Zero.loc,Zero.list) 

答えて

0

私のコードでエラーが見つかりました。 C#からの入力行列は、使用される前に転置されなければならなかった。したがって、 "下付き文字の範囲外"に関するエラーです。これを閉じた状態にします。

関連する問題