0

チュートリアルに基づいて、R スクリプトを IBM dashDB REST エンドポイントに送信して実行しようとしています。

すべてが非常にうまく機能しますが、次のコードを使用すると

timestamp=as.numeric(strptime(df$TIMESTAMP, \"%Y-%m-%d %H:%M:%S.000000\"));

dashDB REST サービスは単純に以下を返します。

内部エラーが発生しました。URL を確認して、もう一度お試しください。

dashDB サービス内で R Web コンソールを使用すると、スクリプトは正常に実行されます。このメッセージの最後にスクリプト全体を添付しました。

何か案は?

library(ibmdbR)
mycon <- idaConnect("BLUDB", "", "")
idaInit(mycon)

df <- as.data.frame(ida.data.frame('"DASH110683"."TEMPERATURE"')[ ,c('NAME', 'TEMPERATURE', 'TIMESTAMP')])

pattern="%Y-%m-%d %H:%M:%S.000000"

timestamp=as.numeric(strptime(df$TIMESTAMP, pattern))


maxTimestamp=max(timestamp)
cutOffTimestamp=maxTimestamp - 10
idx = which(timestamp>cutOffTimestamp)
workingSubset=df[idx,]

devideIds=unique(workingSubset$NAME)
scores = 1:length(devideIds)
for (i in 1:length(devideIds)) {
    idx = which(workingSubset$NAME==devideIds[i])
    df=workingSubset[idx,]
    values=as.numeric(df$TEMPERATURE)
    #scores[i]=(sqrt((globalMean- mean(values))^2) +sqrt((globalSD- sd(values))^2))/2
    #scores[i]=abs(globalSD- sd(values))
    scores[i]=sd(values)
}

if (max(scores)>1) {
  devideIdOutlier=devideIds[scores==max(scores)]
} else {
  devideIdOutlier=0;
}
4

1 に答える 1

1

Romeo さん、チュートリアルで説明されている API は、予備的なものです。実際、より多くのオプションを提供する新しい戦略的なものを利用できるようにしました。これで、リクエスト パラメーターを介して R スクリプトを渡すか、dashDB 内に保存されている R スクリプトを参照できます (たとえば、組み込みの RStudio を使用してスクリプトを保存することにより)。

https://developer.ibm.com/clouddataservices/wp-content/themes/projectnext-clouddata/dashDB/

于 2016-02-18T06:49:59.763 に答える