On Jul 29, 2011, at 9:28 AM, Paul Menzel wrote:
Dear R folks,
wanting to compare different implementations of a solution I want to
script it to iterate over the different implementations. Is there a
way
to do this in the R shell/command line?
You might consider examining the short and seemingly very well written
`benchmark` function in the rbenchmark:package. It is designed as a
testing mechanism but should have the capacity after being stripped of
some of its bells and whistles to do what you ask. You can probably
even get it to do what you want by adjusting a few parameters.
$ more /tmp/iterf.r
f1 <- function(n = 100000,
l = 100000)
{
z = n + l
}
f2 <- function(n = 100000,
l = 100000)
{
z = 2 * (n + l)
}
I tried the following, but it of course does not work.
source("/tmp/iterf.r")
print(f1(2,3))
[1] 5
print(f2(2,3))
[1] 10
for (i in 1:2) { print( fi(2, 3) ) }
Fehler in print(fi(2, 3)) : konnte Funktion "fi" nicht finden
Can I compose a command from values of variables?
It's also possible that you want some combination of 'assign' or 'ge't
with paste("name" , 1:10, sep="_"). Or, perish the thought,
eval(parse(text=paste("f", 1:2, sep="")))
Going on I tried to script that using the `r` from the package
`littler`
[1]. Unfortunately because of the required quotes "" for the command
`source()` I am not able to expand the variable.
I wasn't able to parse that sentence into standard R/English, but it
may be that my lack of use of littler is at fault.
$ for i in $(seq 2); do r -e "print($i)" ; done
[1] 1
[1] 2
$ for i in $(seq 2); do r -e 'source("/tmp/iterf.r");
print(1)' ; done
[1] 1
[1] 1
$ # The next example does not work, because the variable $i
does not get expanded when surrounded by ''.
$ for i in $(seq 2); do r -e 'source("/tmp/iterf.r"); print(f
$i(2, 3))' ; done
Fehler in print(f$i(2, 3)) : Objekt 'f' nicht gefunden
Ausführung angehalten
Fehler in print(f$i(2, 3)) : Objekt 'f' nicht gefunden
Ausführung angehalten
Searching for »iterating function names« with rseek.org did give any
good results. I also read the appendix in the introduction to R [2],
but
this did not have anything regarding to this either.
Is there a way to script this?
library(fortunes)
fortune("Yoda") # surely applies here
David Winsemius, MD
West Hartford, CT
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.