格子级别图只在RApache下失败

时间:2010-10-18 17:31:43

标签: php r curl rapache

我正在研究一个通过curl和RApache调用R的PHP Web应用程序。大多数事情都很好。但是一个格子图会抛出这个错误:

  

RApache警告/错误!!!你的错误+   c(-1,1):非数字参数   二元运算符

我尝试保存数据结构,这些数据结构输入到绘图中并在我的本地R中执行绘图,但随后绘图工作得很好。所以我无法复制错误。

当脚本在RApache中运行时,这些是加载的库:

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

以下是一些脚本:

colgrad.pal<-colorRampPalette(brewer.pal(11,'Spectral'), interpolate='spline')

//problem plot
dists.med.lplot<-levelplot(value~starttime+groupname|dists, data=MDist.median,
  col.regions=rev(colgrad.pal(200)),colorkey=list(col=rev(colgrad.pal(200))),
  xlab='Time(s)',ylab='Treatment',
  main='Level Plot of Median Distance',
  layout=c(1,3))

这是一个数据文件的链接。我这样读了: //链接看起来不值得信任,所以删除了

数据如下所示:

'data.frame':   2880 obs. of  6 variables:
 $ groupname: Factor w/ 8 levels "rowA","rowB",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ fCycle   : Factor w/ 6 levels "Cycle 1","Cycle 2",..: 6 6 6 6 6 6 6 6 6 6 ...
 $ fPhase   : Factor w/ 2 levels "Dark","Light": 1 1 1 1 1 1 1 1 1 1 ...
 $ starttime: int  0 60 120 180 240 300 360 420 480 540 ...
 $ dists    : Factor w/ 3 levels "inadist","lardist",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ value    : num  47.5 64 78.3 39.2 53.7 ...

关于问题是什么或如何更好地排除故障的任何想法?

ETA版本/平台信息

        [platform] => sparc-sun-solaris2.10
        [arch] => sparc
        [os] => solaris2.10
        [system] => sparc, solaris2.10
        [status] => 
        [major] => 2
        [minor] => 10.1
        [year] => 2009
        [month] => 12
        [day] => 14
        [svn rev] => 50720
        [language] => R
        [version.string] => R version 2.10.1 (2009-12-14)

1 个答案:

答案 0 :(得分:2)

您的数据存在问题。我会尝试以下方法:

  • 在实际致电plot()等之前,通过save(x, y, z, ..., file="/tmp/dbg.RData"保存所有(相关)数据)
  • 然后在“正常”R会话中加载保存文件中的所有相关数据并进行检查和比较
  • 这应该允许您查明一个数据问题,然后您可以通过更多的健全性检查来规避这些问题,以防止您的实际代码崩溃。