4
我有一個R腳本,它從MySQL數據庫中提取數據,處理數據,創建多個圖表和圖表,將這些圖表打印到文件並將文件名作爲字符串返回。它在我們的舊服務器(運行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
。我發現了這個令人討厭的東西,並且嚴厲地對它說話。問題解決了(它確實有助於獲得清晰的錯誤信息!)
您是否檢查過新環境中的默認語言環境(請參閱:'Sys.getlocale()')是否有所不同? – daroczig 2011-03-15 19:10:59
@daroczig:有趣。老地方是'C'。新語言環境爲'> Sys.getlocale() [1]「LC_CTYPE = en_US.UTF-8; LC_NUMERIC = C; LC_TIME = en_US.UTF-8; LC_COLLATE = en_US.UTF-8; LC_MONETARY = C; LC_MESSAGES = en_US .UTF-8; LC_PAPER = en_US.UTF-8; LC_NAME = C; LC_ADDRESS = C; LC_TELEPHONE = C; LC_MEASUREMENT = en_US.UTF-8; LC_IDENTIFICATION = C「' – dnagirl 2011-03-15 19:33:08
看來,LOCALE阻止了一個合理的讀數該錯誤消息應該讀取'object'x.gc「未找到」。我發現x.gc沒有被創建,現在一切都很好。 – dnagirl 2011-03-15 19:55:46