私の問題の背景は次のとおりです:Scala - エラー処理にTry、Success、Failureを使用するときに変数を宣言しますか?
データに線形回帰モデルを適用しようとしていますが、データが必要な形式で表示されないと、モデルは例外エラーをスローします。成功した場合は、出力の残差を新しい変数として保存しますが、失敗した場合は、代わりに新しい変数としてゼロの配列を定義します。
私の問題は、関数の成功または失敗に応じてこの変数を宣言できないということです。
次のように具体的には、モデルが呼び出されます。
import org.apache.commons.math3.stat.regression.OLSMultipleLinearRegression
import org.apache.commons.math3.stat.regression.AbstractMultipleLinearRegression
import scala.util.{Try,Success,Failure}
val model=new OLSMultipleLinearRegression()
val goodData=Array(Array(.1),Array(.2))
val badData=Array(Array(.1,.1),Array(.2,.2))
val y=Array(.5,.6)
次はMathIllegalArgumentException
model.newSampleData(y,badData)
例外エラーを生成するが、そこにいる場合、これは正常な動作
model.newSampleData(y,goodData)
を生み出します私は変数を宣言したい例外エラーですval params=Array.fill(2)(0.0)
しかし例外エラーがなければ、変数val params=model.estimateResiduals()
を宣言したいと思います。
(Try
、Success
とFailure
を使用して)私の試みは次のとおりです。
Try{model.newSampleData(y,badData)} match {
case Success(_)=>val params=model.estimateResiduals()
case Failure(_)=>val params=Array.fill(2)(0.0)
}
が、私はparams
を入力すると、私はエラーerror: not found: value params
を取得します。
変数params
を宣言するには、線形回帰法の成功または失敗を教えてください。
ニース、ありがとうございました! – user322778