4

MySQLデータベースからデータをプルし、それを処理し、いくつかのチャートとグラフを作成し、これらのグラフをファイルに出力し、ファイル名を文字列として返すRスクリプトがあります。古いサーバー(R2.10.1を実行しているSolaris 10(32ビット))では正常に動作していましたが、新しいサーバー(R 2.12.1を実行しているCentos(64ビット))ではエラーになりました。

スクリプト全体はかなり長く、ほとんどが正常に機能するため、投稿しません。それでもデータベースにアクセスし、データを処理し、チャートとグラフを作成し、それらをファイルに出力します。ファイル名を返さないだけです。これはエラーです:

Error in save(exp, meta, MDist.median, redgrad.pal, colgrad.pal, phase_starts,  : 
  object âx.gcâ not found
Function brew returned an object of 'try-error'.

以下はスクリプトの一部です。

<% 
Sys.umask(mode="0022")
fn=tempfile('z_')
fn.prof<-paste(fn,'prof',sep='.')
fn.data<-paste(fn,'txt',sep='.')
fn.r<-paste(fn,'rda',sep='.')
fn.graph=paste(fn,'pdf',sep='.')

library(Cairo)
library(rjson)
library(DBI)
library(RMySQL)
library(reshape)
library(plyr)
library('RColorBrewer')
library(ggplot2)
library(lattice)
library(latticeExtra)
library(hexbin)


exp_id<-ifelse(is.null(POST$exp_id),0,as.numeric(POST$exp_id))
group_id<-ifelse(is.null(POST$groupset_id),0,as.numeric(POST$groupset_id))
saveR<-ifelse(is.null(POST$saveR),FALSE,as.logical(POST$saveR))
control<-ifelse(is.null(POST$control),'rowH',as.character(POST$control))

#open connection to db
#process data
#format

#output

pdf(fn.graph,title=meta$exp_name)
dummy <- capture.output(print(plist)) #expensive: 3.56s
print(dists.med.areaplot) #expensive: 5.67s
print(dists.med.lplot)
dev.off()

####HERE IS PROBLEM####
save(exp, meta, MDist.median, 
        redgrad.pal, colgrad.pal, 
        phase_starts, voi, plist, 
        grect, nogrid, dists.med.areaplot, dists.med.lplot,x.gc, file=fn.r )


#return filenames to calling script
cat(toJSON(list('filename'=fn.data, 'graph_pdf'=fn.graph,'rfile'=fn.r)))
%>

考え?

ETA:

つまり、古いサーバーとは異なる新しいサーバーのロケール設定になります。エラーメッセージは次のようになっているはずですobject "x.gc" not found。私は問題のあるオブジェクトを見つけて、それに厳しく話しました。問題は解決しました(読みやすいエラーメッセージが表示されると非常に役立ちます!)

4

1 に答える 1

0

元のポスターが質問に答えました。この質問は回答済みとしてマークされる場合があります。

于 2011-04-01T19:14:16.107 に答える