我有一个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:
归结为新服务器上的LOCALE设置与旧服务器不同。错误消息应为:object "x.gc" not found
。我发现了令人讨厌的对象并且严厉地说出来。问题解决了(这确实有助于提供清晰的错误信息!)
答案 0 :(得分:0)
原始海报回答了这个问题。这个问题可能会被标记为已回答。