Here's an example: 

We define a function to run a simple GLM in R. 


RserveExample=: 3 : 0 
rdcmd_rserve_ 'x<-c(1,2,3,4,5)' (1!:2) 2 
rdcmd_rserve_ 'y<-c(8,21,31,38,50)' (1!:2) 2 
rdcmd_rserve_ 'modelfit<-glm(y~x, family=gaussian(link=identity))' (1!:2) 2 
if. y do. rdget_rserve_ 'capture.output(summary(modelfit))' (1!:2) 2 
else. rdget_rserve_ 'capture.output(residuals(modelfit))' (1!:2) 2 
end. 
) 

If we run this with y=0 everything is fine. It prints each R command to screen 
(so we can copy and paste to R if it fails to run in J), and the result is a 
expected (here opened so as to look better in an email). 

>RserveExample 0 

x<-c(1,2,3,4,5) 
y<-c(8,21,31,38,50) 
modelfit<-glm(y~x, family=gaussian(link=identity)) 
capture.output(residuals(modelfit)) 
1 2 3 4 5 
-1.4 1.5 1.4 -1.7 0.2 

But if we run it with y=1, so as to execute summary(modelfit) in R, it fails: 

x<-c(1,2,3,4,5) 
y<-c(8,21,31,38,50) 
modelfit<-glm(y~x, family=gaussian(link=identity)) 
capture.output(summary(modelfit)) 
Status code: 127 

If we copy and paste the lines to R, it works there: 

> x<-c(1,2,3,4,5) 
> y<-c(8,21,31,38,50) 
> modelfit<-glm(y~x, family=gaussian(link=identity)) 
> capture.output(summary(modelfit)) 
[1] "" 
[2] "Call:" 
[3] "glm(formula = y ~ x, family = gaussian(link = identity))" 
[4] "" 
[5] "Deviance Residuals: " 
[6] " 1 2 3 4 5 " 
[7] "-1.4 1.5 1.4 -1.7 0.2 " 
[8] "" 
[9] "Coefficients:" 
[10] " Estimate Std. Error t value Pr(>|t|) " 
[11] "(Intercept) -0.7000 1.8267 -0.383 0.727103 " 
[12] "x 10.1000 0.5508 18.338 0.000354 ***" 
[13] "---" 
[14] "Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1" 
[15] "" 
[16] "(Dispersion parameter for gaussian family taken to be 3.033333)" 
[17] "" 
[18] " Null deviance: 1029.2 on 4 degrees of freedom" 
[19] "Residual deviance: 9.1 on 3 degrees of freedom" 
[20] "AIC: 23.184" 
[21] "" 
[22] "Number of Fisher Scoring iterations: 2" 
[23] "" 
> 

All the double quotes are because we used capture.output(), but they are not 
the problem. 

Nor is summary() the problem per se. It works fine with some objects: 

rdcmd_rserve_ 'y<-rnorm(8)' 
>rdget_rserve_ 'capture.output(summary(y))' 
Min. 1st Qu. Median Mean 3rd Qu. Max. 
-0.9317 -0.6148 -0.1200 -0.1164 0.2642 0.9486 

So the problem seems to be with executing summary() on particular kinds of R 
objects. 

Hope this gives some insight! 

Thanks, 

Richard Vaughan 
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to