Re: [O] ob-R, problem with try/catch

2015-05-04 Thread Rainer M Krug
Charles C. Berry ccbe...@ucsd.edu writes:

 On Sun, 26 Apr 2015, Nicolas Goaziou wrote:

 Hello,

 Rainer M Krug r.m.k...@gmail.com writes:

 Possible a candidate for the new linting library for org, to mark it
 as an invalid argument combination

 Done. Do you know any other such combinations?

 Except for langs emacs-lisp, clojure, ruby, picolisp, and python
 `:results pp' does nothing.

 mathematica refers to pp but I don't get what it does - it looks
 like raw would be a more suitable :results format.

 Of course, somebody could add a pretty print routine for another
 language, so maybe avoid hard coding the langs.

Thinking about it, I don't think that the combinations should be defined
in the linting library, but in the language definition (ob-XXX.el), by a
function which returns all tested combinations, i.e. all combinations
which have been tested, including if they work or not. The linting
library could then query these lists and use them.

This would keep the language definition in the ob-XXX.el file and make
it easier to maintain.

Rainer



 I guess this would be 'low' trust?


 ==


 For inline src block and inline babel call, `:results list' and
 `:results table' are invalid and throw an error in
 `org-babel-insert-result'.

 HTH,

 Chuck

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, 
UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :   +33 - (0)9 53 10 27 44
Cell:   +33 - (0)6 85 62 59 98
Fax :   +33 - (0)9 58 10 27 44

Fax (D):+49 - (0)3 21 21 25 22 44

email:  rai...@krugs.de

Skype:  RMkrug

PGP: 0x0F52F982


signature.asc
Description: PGP signature


Re: [O] ob-R, problem with try/catch

2015-05-04 Thread Nicolas Goaziou
Hello,

Rainer M Krug rai...@krugs.de writes:

 Thinking about it, I don't think that the combinations should be defined
 in the linting library, but in the language definition (ob-XXX.el), by a
 function which returns all tested combinations, i.e. all combinations
 which have been tested, including if they work or not. The linting
 library could then query these lists and use them.

 This would keep the language definition in the ob-XXX.el file and make
 it easier to maintain.

This is already the case. See, e.g., `org-babel-header-args:R' and
`org-babel-common-header-args-w-values'.

The linting library doesn't hard-code any combination anymore.


Regards,

-- 
Nicolas Goaziou0x80A93738



Re: [O] ob-R, problem with try/catch

2015-04-26 Thread Nicolas Goaziou
Hello,

Rainer M Krug r.m.k...@gmail.com writes:

 Possible a candidate for the new linting library for org, to mark it
 as an invalid argument combination

Done. Do you know any other such combinations?


Regards,

--
Nicolas Goaziou



Re: [O] ob-R, problem with try/catch

2015-04-26 Thread Nicolas Goaziou
Charles C. Berry ccbe...@ucsd.edu writes:

 Except for langs emacs-lisp, clojure, ruby, picolisp, and python
 `:results pp' does nothing.

 mathematica refers to pp but I don't get what it does - it looks
 like raw would be a more suitable :results format.

 Of course, somebody could add a pretty print routine for another
 language, so maybe avoid hard coding the langs.

Done.

 I guess this would be 'low' trust?

The whole check already has `low' trust anyway.

 For inline src block and inline babel call, `:results list' and
 `:results table' are invalid and throw an error in
 `org-babel-insert-result'.

Done.


Regards,



Re: [O] ob-R, problem with try/catch

2015-04-26 Thread Charles C. Berry

On Sun, 26 Apr 2015, Nicolas Goaziou wrote:


Hello,

Rainer M Krug r.m.k...@gmail.com writes:


Possible a candidate for the new linting library for org, to mark it
as an invalid argument combination


Done. Do you know any other such combinations?


Except for langs emacs-lisp, clojure, ruby, picolisp, and 
python `:results pp' does nothing.


mathematica refers to pp but I don't get what it does - it looks like 
raw would be a more suitable :results format.


Of course, somebody could add a pretty print routine for another language, 
so maybe avoid hard coding the langs.


I guess this would be 'low' trust?


==


For inline src block and inline babel call, `:results list' and `:results 
table' are invalid and throw an error in `org-babel-insert-result'.


HTH,

Chuck



Re: [O] ob-R, problem with try/catch

2015-04-23 Thread Rainer M Krug


Envoyé de mon iPhone

 Le 23 avr. 2015 à 18:13, Charles C. Berry ccbe...@ucsd.edu a écrit :
 
 On Wed, 22 Apr 2015, Rainer M Krug wrote:
 
 
 
 Envoyé de mon iPhone
 
 Le 23 avr. 2015 à 04:23, Charles C. Berry ccbe...@ucsd.edu a écrit :
 
 On Wed, 22 Apr 2015, Thomas S. Dye wrote:
 
 Aloha all,
 
 Prior to eaa3a761dae, when working in a session, I was able to run this
 R source code block without problems:
 
 ,-
 | #+header: :file r/adze_wt_log.pdf
 | #+header: :results output graphics
 | #+header: :width 4 :height 3
 | #+begin_src R
 |   g - ggplot(x, aes(x = weight))
 |   g + geom_histogram(aes(y=..density..))
 
 ## Try this:
 
 print( g + geom_histogram(aes(y=..density..)) ) # before rm(g).
 
 
 |   rm(g)
 | #+end_src
 `-
 
 After eaa3a761dae, I get an error and an empty output file.
 
 That commit introduced a tryCatch() wrapper for graphics results.
 
 You probably know that ggplot (or ggplot2) relies on printing of objects to 
 produce graphics (see R-FAQ 7.22).
 
 tryCatch(expr,...) evaluates expr and returns its value, which is `rm(g)' 
 in your case. But `rm(g)' is not autoprinted, and you get an empty file.
 
 I am not in front of my computer but there must be more, as even before the 
 commit there should have been empty file for exactly the same reason.
 
 `:results output' will return the autoprinted values. Without tryCatch it 
 works.
 
 
 Also, the error is strange. Could you send a small reproducable example, so 
 that we can see which error you get? Because if you get an error and an 
 empty file, an error must be in the tryCatcb block.
 
 Here are two blocks that differ in using tryCatch. The first produces an 
 empty, malformed pdf. The second produces a valid pdf. If you comment out the 
 `invisible()' line in the first, then both will produce similar valid pdf's.
 
 #+header: :file nada.pdf
 #+header: :results output graphics
 #+header: :width 4 :height 3
 #+begin_src R
  require(ggplot2)
  df -
  data.frame(gp = factor(rep(letters[1:3], each = 10)),
 y = rnorm(30))
  ggplot(df, aes(x = gp, y = y)) + geom_point()
  invisible()
 #+end_src
 
 
 #+BEGIN_SRC R :results output
  require(ggplot2)
  pdf(file=aok.pdf,width=4,height=3)
  df -
  data.frame(gp = factor(rep(letters[1:3], each = 10)),
 y = rnorm(30))
  ggplot(df, aes(x = gp, y = y)) + geom_point()
  invisible()
  dev.off()
 #+END_SRC
 
 

Sorry I overlooked the :results output graphic header. 

This combination is, as far as I can see (holiday, sun, no notebook, org or R) 
not recommended as it will lead to invalid files. 
Should it actually be valid? I would say these two options contradict each 
other, as output returns the output from the session ( terminal ) which is not 
a graphic. 
Possible a candidate for the new linting library for org, to mark it as an 
invalid argument combination 

Cheers, 

Rainer

 
 HTH,
 
 Chuck



Re: [O] ob-R, problem with try/catch

2015-04-23 Thread Thomas S. Dye
Aloha Rainer,

Rainer M Krug r.m.k...@gmail.com writes:

 After eaa3a761dae, I get an error and an empty output file.
 
 That commit introduced a tryCatch() wrapper for graphics results.
 
 You probably know that ggplot (or ggplot2) relies on printing of
 objects to produce graphics (see R-FAQ 7.22).
 
 tryCatch(expr,...) evaluates expr and returns its value, which is
 `rm(g)' in your case. But `rm(g)' is not autoprinted, and you get an
 empty file.

 I am not in front of my computer but there must be more, as even
 before the commit there should have been empty file for exactly the
 same reason. Also, the error is strange. Could you send a small
 reproducable example, so that we can see which error you get? Because
 if you get an error and an empty file, an error must be in the
 tryCatcb block.

I'm picking up a project that I last worked on in 2013.  I was under the
impression that the source code blocks were working at that time, but I
guess it is possible that I added the rm() statements after the code
blocks were working and didn't realize that the addition broke them.  I
haven't looked too deeply into the problem, but just assumed that the
session expressed in the source code block behaved as if it were entered
at the R prompt.

In the R session, I see this, which I initially thought was an error:

 png(filename=r/buck-shoulder-hist.png,width=400,height=300); tryCatch({
b - ggplot(x, aes(x=((thickness_shoulder * 100) / mapply(max, 
width_shoulder_front, width_shoulder_back
b + geom_histogram(aes(y=..density..))  + geom_density(weight=2) +
xlab(Buck's Shoulder Index) + facet_wrap(~ turner)
rm(b)
},error=function(e){plot(x=-1:1, y=-1:1, type='n', xlab='', ylab='', 
axes=FALSE); text(x=0, y=0, labels=e$message, col='red'); paste('ERROR', 
e$message, sep=' : ')}); dev.off()
'org_babel_R_eoe'
+ . + null device 
  1 

hth,
Tom

-- 
Thomas S. Dye
http://www.tsdye.com



Re: [O] ob-R, problem with try/catch

2015-04-23 Thread Rainer M Krug


Envoyé de mon iPhone

 Le 23 avr. 2015 à 17:53, Thomas S. Dye t...@tsdye.com a écrit :
 
 Aloha Rainer,
 

Hi Thomas,

 Rainer M Krug r.m.k...@gmail.com writes:
 
 After eaa3a761dae, I get an error and an empty output file.
 
 That commit introduced a tryCatch() wrapper for graphics results.
 
 You probably know that ggplot (or ggplot2) relies on printing of
 objects to produce graphics (see R-FAQ 7.22).
 
 tryCatch(expr,...) evaluates expr and returns its value, which is
 `rm(g)' in your case. But `rm(g)' is not autoprinted, and you get an
 empty file.
 
 I am not in front of my computer but there must be more, as even
 before the commit there should have been empty file for exactly the
 same reason. Also, the error is strange. Could you send a small
 reproducable example, so that we can see which error you get? Because
 if you get an error and an empty file, an error must be in the
 tryCatcb block.
 
 I'm picking up a project that I last worked on in 2013.  I was under the
 impression that the source code blocks were working at that time, but I
 guess it is possible that I added the rm() statements after the code
 blocks were working and didn't realize that the addition broke them.

The rm() did not break anything. The behavior that if you want to have a ggplot 
(and e.g. Lattice as well) in a pdf/png/... You have to use print() is standard 
R behavior and was the same before. This question question comes up from time 
to time on the R list as well. And I don't think this can be easily be dealt 
with in org, as it is standard R. 


  I
 haven't looked too deeply into the problem, but just assumed that the
 session expressed in the source code block behaved as if it were entered
 at the R prompt.

It does - only that you wrap you code in pdf() ... dev.off() to get the output 
in a file. 

 
 In the R session, I see this, which I initially thought was an error:
 
 png(filename=r/buck-shoulder-hist.png,width=400,height=300); tryCatch({
 b - ggplot(x, aes(x=((thickness_shoulder * 100) / mapply(max, 
 width_shoulder_front, width_shoulder_back
 b + geom_histogram(aes(y=..density..))  + geom_density(weight=2) +
 xlab(Buck's Shoulder Index) + facet_wrap(~ turner)
 rm(b)
 },error=function(e){plot(x=-1:1, y=-1:1, type='n', xlab='', ylab='', 
 axes=FALSE); text(x=0, y=0, labels=e$message, col='red'); paste('ERROR', 
 e$message, sep=' : ')}); dev.off()
 'org_babel_R_eoe'
 + . + null device 
  1 
 

Nope - this is no error, but simply the code evaluated. An error would be shown 
in the resulting graph. 

 hth,

Yes it does,

Cheers,

Rained

 Tom
 
 -- 
 Thomas S. Dye
 http://www.tsdye.com



Re: [O] ob-R, problem with try/catch

2015-04-23 Thread Aaron Ecay
Hello all,

2015ko apirilak 23an, Rainer M Krug-ek idatzi zuen:
 I'm picking up a project that I last worked on in 2013.  I was under the
 impression that the source code blocks were working at that time, but I
 guess it is possible that I added the rm() statements after the code
 blocks were working and didn't realize that the addition broke them.
 
 The rm() did not break anything. The behavior that if you want to have
 a ggplot (and e.g. Lattice as well) in a pdf/png/... You have to use
 print() is standard R behavior and was the same before. This question
 question comes up from time to time on the R list as well. And I don't
 think this can be easily be dealt with in org, as it is standard R.

Before this change, the code was fed line-by-line to the R interpreter,
and thus each line was auto printed.  (Technically, the result of each
expresion, whcih could span multiple lines.)  After this change, the
code is one expression, and only the result of the whole block is
printed.  Thus the different behavior.

The previous behavior was not unproblematic.  If a code block contained
more than one plot, the results would have been odd: for a pdf device a
multi-page pdf is generated.  For jpg/png, several files are generated
with a sequence number appended to each.

The principled approach is to use the evaluate package for this.  I had
worked on a patch to move towards this approach, but the effort stalled
when Charles Berry reported some regressions with remote sessions, which
I was never able to reproduce (and thus fix) satisfactorily.  The patch
is here: http://mid.gmane.org/87k35orl2w@gmail.com.

In any case, it is clear that one of the workarounds discussed in
this thread should be used.  Perhaps we should generate a warning for
“:results output graphics” R code blocks, since they could produce
this strange situation.  A priori, I expect that “:results value
graphics” should be free from this problem.

-- 
Aaron Ecay



Re: [O] ob-R, problem with try/catch

2015-04-23 Thread Thomas S. Dye
Aloha Rainer,

Rainer M Krug r.m.k...@gmail.com writes:

 Sorry I overlooked the :results output graphic header. 

 This combination is, as far as I can see (holiday, sun, no notebook,
 org or R) not recommended as it will lead to invalid files.
 Should it actually be valid? I would say these two options contradict
 each other, as output returns the output from the session ( terminal )
 which is not a graphic.
 Possible a candidate for the new linting library for org, to mark it
 as an invalid argument combination

IIRC :results output graphics is needed for the ggplot package.

All the best,
Tom

-- 
Thomas S. Dye
http://www.tsdye.com



Re: [O] ob-R, problem with try/catch

2015-04-23 Thread Charles C. Berry

On Wed, 22 Apr 2015, Rainer M Krug wrote:




Envoyé de mon iPhone


Le 23 avr. 2015 à 04:23, Charles C. Berry ccbe...@ucsd.edu a écrit :


On Wed, 22 Apr 2015, Thomas S. Dye wrote:

Aloha all,

Prior to eaa3a761dae, when working in a session, I was able to run this
R source code block without problems:

,-
| #+header: :file r/adze_wt_log.pdf
| #+header: :results output graphics
| #+header: :width 4 :height 3
| #+begin_src R
|   g - ggplot(x, aes(x = weight))
|   g + geom_histogram(aes(y=..density..))


## Try this:

print( g + geom_histogram(aes(y=..density..)) ) # before rm(g).



|   rm(g)
| #+end_src
`-

After eaa3a761dae, I get an error and an empty output file.


That commit introduced a tryCatch() wrapper for graphics results.

You probably know that ggplot (or ggplot2) relies on printing of objects to 
produce graphics (see R-FAQ 7.22).

tryCatch(expr,...) evaluates expr and returns its value, which is `rm(g)' in 
your case. But `rm(g)' is not autoprinted, and you get an empty file.


I am not in front of my computer but there must be more, as even before 
the commit there should have been empty file for exactly the same 
reason.


`:results output' will return the autoprinted values. Without tryCatch it 
works.



Also, the error is strange. Could you send a small reproducable example, 
so that we can see which error you get? Because if you get an error and 
an empty file, an error must be in the tryCatcb block.


Here are two blocks that differ in using tryCatch. The first produces an 
empty, malformed pdf. The second produces a valid pdf. If you comment out 
the `invisible()' line in the first, then both will produce similar valid 
pdf's.


#+header: :file nada.pdf
#+header: :results output graphics
#+header: :width 4 :height 3
#+begin_src R
  require(ggplot2)
  df -
  data.frame(gp = factor(rep(letters[1:3], each = 10)),
 y = rnorm(30))
  ggplot(df, aes(x = gp, y = y)) + geom_point()
  invisible()
#+end_src


#+BEGIN_SRC R :results output
  require(ggplot2)
  pdf(file=aok.pdf,width=4,height=3)
  df -
  data.frame(gp = factor(rep(letters[1:3], each = 10)),
 y = rnorm(30))
  ggplot(df, aes(x = gp, y = y)) + geom_point()
  invisible()
  dev.off()
#+END_SRC



HTH,

Chuck

Re: [O] ob-R, problem with try/catch

2015-04-23 Thread Aaron Ecay
Hi Tom,

2015ko apirilak 23an, Thomas S. Dye-ek idatzi zuen:
 
 IIRC :results output graphics is needed for the ggplot package.

Hmm.  This is the case if the code is *not* evaluated in a session.  In
a session, either value or output result types work.  (All this has been
tested with a recent master version.)  An unfortunate situation – IMO
the value type ought to work outside of a session, provided that the
value of the last expression in the block is a ggplot object.

Here’s a code block that can be adapted to test various combinations:

#+begin_src R :results output graphics :file foo.png :session *foo*
  library(ggplot2)
  ggplot(data.frame(x = rnorm(10), y = rnorm(10)),
 aes(x = x, y = y)) +
geom_point()
#+end_src

-- 
Aaron Ecay



Re: [O] ob-R, problem with try/catch

2015-04-23 Thread Thomas S. Dye
Hi Aaron,

Aaron Ecay aarone...@gmail.com writes:

 Hi Tom,

 2015ko apirilak 23an, Thomas S. Dye-ek idatzi zuen:
 
 IIRC :results output graphics is needed for the ggplot package.

 Hmm.  This is the case if the code is *not* evaluated in a session.  In
 a session, either value or output result types work.  (All this has been
 tested with a recent master version.)

Yes, indeed.  I'd forgotten this distinction, which Erik Iverson spelled
out clearly several years ago:
http://article.gmane.org/gmane.emacs.orgmode/26082

Unless Erik minds, I'll work his post into ob-doc-R when I find some
time.  IMO, it would be nice to have this kind of systematic description
in the first place one goes for help.

 An unfortunate situation – IMO
 the value type ought to work outside of a session, provided that the
 value of the last expression in the block is a ggplot object.

 Here’s a code block that can be adapted to test various combinations:

 #+begin_src R :results output graphics :file foo.png :session *foo*
   library(ggplot2)
   ggplot(data.frame(x = rnorm(10), y = rnorm(10)),
  aes(x = x, y = y)) +
 geom_point()
 #+end_src

Thanks, this code will be useful as I pick up this project, which was
the first time I tried to do something substantial with Org mode.  I'm
going to find a ton of cruft ...

All the best,
Tom

-- 
Thomas S. Dye
http://www.tsdye.com



Re: [O] ob-R, problem with try/catch

2015-04-23 Thread Thomas S. Dye
Aloha Chuck,

Charles C. Berry ccbe...@ucsd.edu writes:

 On Wed, 22 Apr 2015, Thomas S. Dye wrote:

 Aloha all,

 Prior to eaa3a761dae, when working in a session, I was able to run this
 R source code block without problems:

 ,-
 | #+header: :file r/adze_wt_log.pdf
 | #+header: :results output graphics
 | #+header: :width 4 :height 3
 | #+begin_src R
 |   g - ggplot(x, aes(x = weight))
 |   g + geom_histogram(aes(y=..density..))

 ## Try this:

 print( g + geom_histogram(aes(y=..density..)) ) # before rm(g).

Perfect--a graph in the file and a clean session.  Thanks!

All the best,
Tom

-- 
Thomas S. Dye
http://www.tsdye.com



Re: [O] ob-R, problem with try/catch

2015-04-22 Thread Charles C. Berry

On Wed, 22 Apr 2015, Thomas S. Dye wrote:


Aloha all,

Prior to eaa3a761dae, when working in a session, I was able to run this
R source code block without problems:

,-
| #+header: :file r/adze_wt_log.pdf
| #+header: :results output graphics
| #+header: :width 4 :height 3
| #+begin_src R
|   g - ggplot(x, aes(x = weight))
|   g + geom_histogram(aes(y=..density..))


## Try this:

print( g + geom_histogram(aes(y=..density..)) ) # before rm(g).



|   rm(g)
| #+end_src
`-

After eaa3a761dae, I get an error and an empty output file.



That commit introduced a tryCatch() wrapper for graphics results.

You probably know that ggplot (or ggplot2) relies on printing of objects 
to produce graphics (see R-FAQ 7.22).


tryCatch(expr,...) evaluates expr and returns its value, which is `rm(g)' 
in your case. But `rm(g)' is not autoprinted, and you get an empty file.




I can work around this error by removing the line rm(g),


Right. Then, the expression returned by tryCatch is

g + geom_histogram(aes(y=..density..))

which is autoprinted giving the graph.

When in doubt, there is no harm in explicitly print()ing objects that 
would have been autoprinted otherwise.


For reference, here is what org-babel-execute:R produces for your src 
block (lightly formatted for readability):


#+BEGIN_SRC R
  pdf(file=\r/adze_wt_log.pdf\,width=4,height=3)
  tryCatch({
   g - ggplot(x, aes(x = weight))
   g + geom_histogram(aes(y=..density..))
   rm(g)
   },
   error=function(e){
   plot(x=-1:1, y=-1:1, type='n', xlab='', ylab='',
axes=FALSE)
   text(x=0, y=0, labels=e$message, col='red')
   paste('ERROR', e$message, sep=' : ')})
  dev.off()
#+END_SRC

HTH,

Chuck



[O] ob-R, problem with try/catch

2015-04-22 Thread Thomas S. Dye
Aloha all,

Prior to eaa3a761dae, when working in a session, I was able to run this
R source code block without problems:

,-
| #+header: :file r/adze_wt_log.pdf   
| #+header: :results output graphics  
| #+header: :width 4 :height 3
| #+begin_src R   
|   g - ggplot(x, aes(x = weight))   
|   g + geom_histogram(aes(y=..density..))
|   rm(g) 
| #+end_src   
`-

After eaa3a761dae, I get an error and an empty output file.

I can work around this error by removing the line rm(g), however, I'd
like to keep the session clean and not have a bunch of variables
hanging around.

Is there a way to do this with ob-R.el in its current state?  Or, should
I adopt a different set of habits?

All the best,
Tom

-- 
T.S. Dye  Colleagues, Archaeologists
735 Bishop St, Suite 315, Honolulu, HI 96813
Tel: 808-529-0866, Fax: 808-529-0884
http://www.tsdye.com



Re: [O] ob-R, problem with try/catch

2015-04-22 Thread Rainer M Krug


Envoyé de mon iPhone

 Le 23 avr. 2015 à 04:23, Charles C. Berry ccbe...@ucsd.edu a écrit :
 
 On Wed, 22 Apr 2015, Thomas S. Dye wrote:
 
 Aloha all,
 
 Prior to eaa3a761dae, when working in a session, I was able to run this
 R source code block without problems:
 
 ,-
 | #+header: :file r/adze_wt_log.pdf
 | #+header: :results output graphics
 | #+header: :width 4 :height 3
 | #+begin_src R
 |   g - ggplot(x, aes(x = weight))
 |   g + geom_histogram(aes(y=..density..))
 
 ## Try this:
 
 print( g + geom_histogram(aes(y=..density..)) ) # before rm(g).
 
 
 |   rm(g)
 | #+end_src
 `-
 
 After eaa3a761dae, I get an error and an empty output file.
 
 That commit introduced a tryCatch() wrapper for graphics results.
 
 You probably know that ggplot (or ggplot2) relies on printing of objects to 
 produce graphics (see R-FAQ 7.22).
 
 tryCatch(expr,...) evaluates expr and returns its value, which is `rm(g)' in 
 your case. But `rm(g)' is not autoprinted, and you get an empty file.

I am not in front of my computer but there must be more, as even before the 
commit there should have been empty file for exactly the same reason. Also, the 
error is strange. Could you send a small reproducable example, so that we can 
see which error you get? Because if you get an error and an empty file, an 
error must be in the tryCatcb block. 

Thanks,

Rainer

 
 I can work around this error by removing the line rm(g),
 
 Right. Then, the expression returned by tryCatch is
 
g + geom_histogram(aes(y=..density..))
 
 which is autoprinted giving the graph.
 
 When in doubt, there is no harm in explicitly print()ing objects that would 
 have been autoprinted otherwise.
 
 For reference, here is what org-babel-execute:R produces for your src block 
 (lightly formatted for readability):
 
 #+BEGIN_SRC R
  pdf(file=\r/adze_wt_log.pdf\,width=4,height=3)
  tryCatch({
   g - ggplot(x, aes(x = weight))
   g + geom_histogram(aes(y=..density..))
   rm(g)
   },
   error=function(e){
   plot(x=-1:1, y=-1:1, type='n', xlab='', ylab='',
axes=FALSE)
   text(x=0, y=0, labels=e$message, col='red')
   paste('ERROR', e$message, sep=' : ')})
  dev.off()
 #+END_SRC
 
 HTH,
 
 Chuck