[R] Can one write a procedure in R like for instance in Maple ?

Berton Gunter gunter.berton at gene.com
Mon Jan 23 19:46:01 CET 2006

1. Have you read the "R LANGUAGE DEFINITION" in which writing functions is
extensively discussed?

2. One excellent book on R is S PROGRAMMING by Venables and Ripley. I
recommend it highly.

-- Bert Gunter
Genentech Non-Clinical Statistics
South San Francisco, CA
"The business of the statistician is to catalyze the scientific learning
process."  - George E. P. Box

> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch 
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of 
> Baronin P. Storch von
> Sent: Monday, January 23, 2006 9:57 AM
> To: r-help at stat.math.ethz.ch
> Subject: [R] Can one write a procedure in R like for instance 
> in Maple ?
> Dear R-wizards!
> I have been learning on my own how to use this fantastic 
> program.. but I agree with some people that even with the 
> manuals, the faq and so on.. when you are sitting fully 
> alone.. progress can be ... slow... very slow indeed.. In 
> fact sometimes, looking at the "solutions" provided by  some 
> of you- I am just flabbergasted to the point that I couldn't 
> figure out how to come up with them myself (sometimes I don't 
> even understand them :-( )
>  But after spending around three weeks on this, and starting 
> to get fairly obsessed with it, I decided I shall ask for 
> help,'cause i can't figure out in the documentation where I 
> should look for this.
> In Maple when I want to automatize something boring I write a 
> procedure..
> here I am not too sure.. how to bind together a few 
> statements- most of which are functions... sounds like it 
> would make up a personnal macro..
> I am sure I am doing things in such a primitive way that the 
> R-specialists will wince.. but that's how it goes with beginners!
> Set up.
>  I have 4 fairly large data base with unequal number of lines 
> (around 1200-1500), but identical number of columns (162)-years.
> for each column, I construct a data-frame with the 
> corresponding column of DB1, then from DB2, .. DB4.
> This yields a data.frame in which many data are NA- some are 
> real NAs some others are because I have to take the max of 
> the lines. In any case, the number of NAs of each of these 4 
> columns is not identical.
> I extract (by sorting and creating 4 new vectors) 4 vectors 
> of variable length
> -the relevant and interesting data- to whom I wish to apply 
> some standardized treatment: that is  normality with say 
> Shapiro-Wilks, Levene, etc.. Kruskal-Wallis and probably 
> other things.. 
> I am not showing my tasks because I do not think that I want 
> to bother the readers with this,, rather ask for general 
> remarks ( you can provide examples of your own).
> For each column I want to write the results in a table.. and 
> append these resulta for each column.
> I was fairly efficient at doing that for a particular column,
> but then the simple thought of  apply this "list of tasks" 
> 162 times.. makes me.. 
> feel that there should be a way.... to speed up my 
> execution.. (a loop)
> However I have not been able to create a super "function" (or 
> procedure) that could tie all these statements together in a 
> sensible fashion.. because each time the data.frame created 
> is generated by a function.. and somehow i still did not 
> figure out how to write a function of functions 
> and then maybe a loop do for all values of dates =1:162 this 
> function..
> (all the stuff I tried failed, because I was indexing objects 
> that were also indexed.. I am vague.. but then retracing a 3 
> weeks of trials and errors errors errors errors ...\infty :-) 
> is cumbersome)
> 1. Could anybody  give me suggestions where to look and maybe 
> unveil the tricks of the function of functions .. 
> ideally I would construct a loop executing a super function.. 
> whose results would be dumped in a file (write.table) 
> appending each time the result of the loop i..
> but I was not able to construct that...
>  should I make a wiser use of these "apply, tapply, sapply" 
> marvels? I dunno.
>  does something like for (i in 1:G){sapply(b(i),sw)} were 
> b(i) is the dataframe for column i, and SW is a function 
> (super function-procedure) make sense in R?
> I see that there are some fully esoterical paragraphs on 
> things that seem to be relevant in the manuals.. but.. 
> esoterical.. I cannot make sense of them...  vicious circle..
> Thank you in advance for any courageous that  would give me a hint..
>  Christina
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html

More information about the R-help mailing list