From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rainer M Krug Subject: Re: [babel] Writing R-packages the org way? Date: Thu, 7 Oct 2010 18:04:25 +0200 Message-ID: References: <4CADD83B.4000602@ccbr.umn.edu> <8762xeniy6.fsf@stats.ox.ac.uk> <4CADE357.1090803@ccbr.umn.edu> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0936303158==" Return-path: Received: from [140.186.70.92] (port=42024 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1P3sxJ-0005us-Lw for emacs-orgmode@gnu.org; Thu, 07 Oct 2010 12:04:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1P3sxH-0005Cs-FI for emacs-orgmode@gnu.org; Thu, 07 Oct 2010 12:04:28 -0400 Received: from mail-qy0-f169.google.com ([209.85.216.169]:49835) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1P3sxH-0005Ci-Av for emacs-orgmode@gnu.org; Thu, 07 Oct 2010 12:04:27 -0400 Received: by qyk31 with SMTP id 31so13652qyk.0 for ; Thu, 07 Oct 2010 09:04:26 -0700 (PDT) In-Reply-To: <4CADE357.1090803@ccbr.umn.edu> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Erik Iverson Cc: Dan Davison , emacs-orgmode --===============0936303158== Content-Type: multipart/alternative; boundary=20cf302ef9385ea1d80492090c33 --20cf302ef9385ea1d80492090c33 Content-Type: text/plain; charset=ISO-8859-1 On Thu, Oct 7, 2010 at 5:12 PM, Erik Iverson wrote: > > Dan Davison wrote: > >> Erik Iverson writes: >> >> Rainer M Krug wrote: >>> >>>> Hi >>>> >>>> I am about to write an R package, and as I am an org-mode and >>>> org-babel user, I would (obviously) like to use org-mode for that. >>>> >>>> Is there a recommended way of writing an R package in org-babel, or >>>> do I have effectively wrap the R code for the documentation >>>> etc. into source blocks in babel? >>>> >>> That's what I do. I've looked into converting an org-file to >>> Roxygen or Rd markup, but never got very far. My idea at the time >>> was to do something like: >>> >>> * function1 >>> ** Help >>> *** Title >>> this is function 1 title >>> *** Description >>> function1 does this... >>> *** Usage >>> function1(arg1, arg2, ...) >>> *** Arguments >>> arg1: the first argument >>> *** Examples >>> function1(arg1 = x, arg2 = y) >>> **Definition >>> begin_src R :tangle R/package.R >>> function1 <- function(arg1, arg2) { >>> >>> } >>> >>> I like the idea of a kind of template, which takes the function name as a parameter and expands it to the above described structure, but also including one section for tests. That would definitely be a starting point from which one could look into the "problem" of the .Rd files. As I am not an emacs / elisp expert, how could that be done (the template)? > >>> Any suggestions how to best proceed? >>>> >>>> Dream: I would like to have one org file which contains everything >>>> (documentation, code, other relevant files) and if I export or >>>> tangle the file, I have the package ready. >>>> >>> Well, that functionality is essentially present with code blocks >>> and tangling, except the documentation part. >>> >> Exactly - and that is the part I would like to have. > >> Hi Erik, >> >> Would you mind expanding on that -- what are we missing for the >> documentation part? >> >> > Dan, by "except for the documentation part", I meant generating > .Rd files (the LaTeX-like syntax) automatically from some org-syntax > that does *not* depend on code blocks. I.e., it would be cool to > specify syntax like I have above for documentation. Using org-mode > headlines for each section like Description, Usage, Arguments, etc. > > Just like exporting to LaTeX generates sections, some process would > use these headlines to generate the .Rd sections. > > That way, you don't have to use the .Rd syntax yourself. No big deal, > just a convenience feature. I don't know how you'd specify to org-mode > that a particular subtree was to generate .Rd syntax, and I don't know > if it would be on export or tangling. > > An alternative is simply just to use code blocks of type Rd within > org-mode and then tangle to .Rd files. That's what I currently do. > > Hope that explains it, > Erik > > > Dan >> > -- NEW GERMAN FAX NUMBER!!! Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Natural Sciences Building Office Suite 2039 Stellenbosch University Main Campus, Merriman Avenue Stellenbosch South Africa Cell: +27 - (0)83 9479 042 Fax: +27 - (0)86 516 2782 Fax: +49 - (0)321 2125 2244 email: Rainer@krugs.de Skype: RMkrug Google: R.M.Krug@gmail.com --20cf302ef9385ea1d80492090c33 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

On Thu, Oct 7, 2010 at 5:12 PM, Erik Ive= rson <eriki@ccbr= .umn.edu> wrote:

Dan Davison wrote:
Erik Iverson <er= iki@ccbr.umn.edu> writes:

Rainer M Krug wrote:
Hi

I am about to write an R package, and as I am an org-mode and
org-babel user, I would (obviously) like to use org-mode for that.

Is there a recommended way of writing an R package in org-babel, or
do I have effectively wrap the R code for the documentation
etc. into source blocks in babel?
That's what I do. =A0I've looked into converting an org-file to
Roxygen or Rd markup, but never got very far. =A0My idea at the time
was to do something like:

* function1
** Help
*** Title
=A0 =A0this is function 1 title
*** Description
=A0 =A0function1 does this...
*** Usage
=A0 =A0function1(arg1, arg2, ...)
*** Arguments
=A0 =A0arg1: the first argument
*** Examples
=A0 =A0function1(arg1 =3D x, arg2 =3D y)
**Definition
=A0 =A0begin_src R :tangle R/package.R
=A0 =A0function1 <- function(arg1, arg2) {

=A0 =A0}


= I like the idea of a kind of template, which takes the function name as a p= arameter and expands it to the above described structure, but also includin= g one section for tests.
That would definitely be a starting point from which one could look in= to the "problem" of the .Rd files. As I am not an emacs / elisp e= xpert, how could that be done (the template)?

=A0

Any suggestions how to best proceed?

Dream: I would like to have one org file which contains everything
(documentation, code, other relevant files) and if I export or
tangle the file, I have the package ready.
Well, that functionality is essentially present with code blocks
and tangling, except the documentation part.
<= /div>

Exactly - and that is the part = I would like to have.
=A0

Hi Erik,

Would you mind expanding on that -- what are we missing for the
documentation part?


Dan, by "except for the documentation part", I meant generating .Rd files (the LaTeX-like syntax) automatically from some org-syntax
that does *not* depend on code blocks. =A0I.e., it would be cool to
specify syntax like I have above for documentation. =A0Using org-mode
headlines for each section like Description, Usage, Arguments, etc.

Just like exporting to LaTeX generates sections, some process would
use these headlines to generate the .Rd sections.

That way, you don't have to use the .Rd syntax yourself. =A0No big deal= ,
just a convenience feature. =A0I don't know how you'd specify to or= g-mode
that a particular subtree was to generate .Rd syntax, and I don't know<= br> if it would be on export or tangling.

An alternative is simply just to use code blocks of type Rd within
org-mode and then tangle to .Rd files. =A0That's what I currently do.
Hope that explains it,
Erik


Dan



--
NEW GERMAN FAX NUMBER!!= !

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

Centre of Excellence for Invas= ion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch UniversityMain Campus, Merriman Avenue
Stellenbosch
South Africa

Cell:= =A0 =A0 =A0 =A0 =A0=A0 +27 - (0)83 9479 042
Fax:=A0 =A0 =A0 =A0 =A0 =A0 = +27 - (0)86 516 2782
Fax:=A0 =A0 =A0 =A0 =A0 =A0 +49 - (0)321 2125 2244
email:=A0 =A0 =A0 =A0= =A0 Rainer@krugs.de

Skype:= =A0 =A0 =A0 =A0 =A0 RMkrug
Google:=A0 =A0 =A0 =A0=A0 R.M.Krug@gmail.com

--20cf302ef9385ea1d80492090c33-- --===============0936303158== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode --===============0936303158==--