[R] Remove from a string

2006-12-08 Thread Katharina Vedovelli
Hi all!

I have lots of functions called in the following pattern
'NameOfFunctionNumber' where the name always stays the same and the number
varies from 1 to 98.
Another function which I run in advance returns the number of the function
which has to be called next.

Now I want to combine 'NameOfFunction' with the 'Number' returned so that i
can call the desired function.
I do this by:

x-c(NameOfFunction,Number)
z-paste(x,collapse=)
z

which returns

NameOfFunctionNumber

My Problem is that R doesn't recognise this as the name of my function
because of the  at the beginning and the end.
Is there a way of getting rid of those? Or does anybody know another way of
solving this problem?

Thanks a lot for your help!
Cheers,
Katharina

[[alternative HTML version deleted]]

__
R-help@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
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Remove from a string

2006-12-08 Thread jim holtman
Try using 'get' to return the object specified as a character string:

 f1-function()1
 f2 - function()2
 z - 'f2'
 z
[1] f2
 get(z)()
[1] 2




On 12/8/06, Katharina Vedovelli [EMAIL PROTECTED] wrote:

 Hi all!

 I have lots of functions called in the following pattern
 'NameOfFunctionNumber' where the name always stays the same and the number
 varies from 1 to 98.
 Another function which I run in advance returns the number of the function
 which has to be called next.

 Now I want to combine 'NameOfFunction' with the 'Number' returned so that
 i
 can call the desired function.
 I do this by:

 x-c(NameOfFunction,Number)
 z-paste(x,collapse=)
 z

 which returns

 NameOfFunctionNumber

 My Problem is that R doesn't recognise this as the name of my function
 because of the  at the beginning and the end.
 Is there a way of getting rid of those? Or does anybody know another way
 of
 solving this problem?

 Thanks a lot for your help!
 Cheers,
 Katharina

[[alternative HTML version deleted]]

 __
 R-help@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
 and provide commented, minimal, self-contained, reproducible code.




-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?

[[alternative HTML version deleted]]

__
R-help@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
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Remove from a string

2006-12-08 Thread Scionforbai
If I understand what you need,

 Number=2
 x - paste(NameOfFunction,as.character(Number),sep=)
 x
[1] NameOfFunction2

And you can use do.call(x, ...) to get your function.
Hope it helps,

Scionforbai

__
R-help@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
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Remove from a string

2006-12-08 Thread Dimitris Rizopoulos
try this:

f1 - function(x) x + 1
f2 - function(x) x + 2
f3 - function(x) x + 3

###

FunNam - f1
eval(call(FunNam, x = 1:5))

FunNam - f2
eval(call(FunNam, x = 1:5))

FunNam - f3
eval(call(FunNam, x = 1:5))


I hope it helps.

Best,
Dimitris


Dimitris Rizopoulos
Ph.D. Student
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/(0)16/336899
Fax: +32/(0)16/337015
Web: http://med.kuleuven.be/biostat/
 http://www.student.kuleuven.be/~m0390867/dimitris.htm


- Original Message - 
From: Katharina Vedovelli [EMAIL PROTECTED]
To: r-help@stat.math.ethz.ch
Sent: Friday, December 08, 2006 2:57 PM
Subject: [R] Remove  from a string


 Hi all!

 I have lots of functions called in the following pattern
 'NameOfFunctionNumber' where the name always stays the same and the 
 number
 varies from 1 to 98.
 Another function which I run in advance returns the number of the 
 function
 which has to be called next.

 Now I want to combine 'NameOfFunction' with the 'Number' returned so 
 that i
 can call the desired function.
 I do this by:

 x-c(NameOfFunction,Number)
 z-paste(x,collapse=)
 z

 which returns

 NameOfFunctionNumber

 My Problem is that R doesn't recognise this as the name of my 
 function
 because of the  at the beginning and the end.
 Is there a way of getting rid of those? Or does anybody know another 
 way of
 solving this problem?

 Thanks a lot for your help!
 Cheers,
 Katharina

 [[alternative HTML version deleted]]

 __
 R-help@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
 and provide commented, minimal, self-contained, reproducible code.
 


Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm

__
R-help@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
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Remove from a string

2006-12-08 Thread Marc Schwartz
On Fri, 2006-12-08 at 14:57 +0100, Katharina Vedovelli wrote:
 Hi all!
 
 I have lots of functions called in the following pattern
 'NameOfFunctionNumber' where the name always stays the same and the number
 varies from 1 to 98.
 Another function which I run in advance returns the number of the function
 which has to be called next.
 
 Now I want to combine 'NameOfFunction' with the 'Number' returned so that i
 can call the desired function.
 I do this by:
 
 x-c(NameOfFunction,Number)
 z-paste(x,collapse=)
 z
 
 which returns
 
 NameOfFunctionNumber
 
 My Problem is that R doesn't recognise this as the name of my function
 because of the  at the beginning and the end.
 Is there a way of getting rid of those? Or does anybody know another way of
 solving this problem?
 
 Thanks a lot for your help!
 Cheers,
 Katharina

It is not entirely clear what your ultimate goal is, thus there may be a
(much) better approach than calling functions in this manner. What do
the functions actually do and does the output vary based upon some
attribute (ie. the class) of the argument such that using R's typical
function dispatch method would be more suitable.

However, to address the specific question, at least two options:

 NameOfFunction21 - function(x) x^2

 eval(call(paste(NameOfFunction, 21, sep = ),  21))
[1] 441

 do.call(paste(NameOfFunction, 21, sep = ),  list(21))
[1] 441

In both cases, the result is to evaluate the function call, with 21 as
the argument.  See ?call, ?eval and ?do.call for more information.

HTH,

Marc Schwartz

__
R-help@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
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Remove from a string

2006-12-08 Thread Greg Snow
The best approach is probably to load all of your functions into a list:

 myfunctions - list()
 myfunctions[[1]] - NameOfFunction1
 myfunctions[[2]] - NameOfFunction2
...

Or

 myfunctions - list()
 for (i in 1:98){
+ myfunctions[[i]] - get( paste('NameOfFunction',i,sep='') )
+ }


Then you can run the function like:

 myfunctions[[Number]](data, ...)

You could use 'get' directly, but the list of functions is probably
cleaner.

Hope this helps, 


-- 
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
[EMAIL PROTECTED]
(801) 408-8111
 

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Katharina
Vedovelli
Sent: Friday, December 08, 2006 6:57 AM
To: r-help@stat.math.ethz.ch
Subject: [R] Remove  from a string

Hi all!

I have lots of functions called in the following pattern
'NameOfFunctionNumber' where the name always stays the same and the
number varies from 1 to 98.
Another function which I run in advance returns the number of the
function which has to be called next.

Now I want to combine 'NameOfFunction' with the 'Number' returned so
that i can call the desired function.
I do this by:

x-c(NameOfFunction,Number)
z-paste(x,collapse=)
z

which returns

NameOfFunctionNumber

My Problem is that R doesn't recognise this as the name of my function
because of the  at the beginning and the end.
Is there a way of getting rid of those? Or does anybody know another way
of solving this problem?

Thanks a lot for your help!
Cheers,
Katharina

[[alternative HTML version deleted]]

__
R-help@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
and provide commented, minimal, self-contained, reproducible code.

__
R-help@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
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Remove from a string

2006-12-08 Thread Bert Gunter
 I second Marc's comments below, but for amusement, another alternative to
the (undesirable) eval(call()) construction is:

 foo-function(x)x^2
 get(foo)(1:5)
[1]  1  4  9 16 25

I believe this is equally undesirable, however, and as Marc said, making
your function a function of two arguments or something similar would be the
better approach.


Bert Gunter
Genentech Nonclinical Statistics
South San Francisco, CA 94404


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Marc Schwartz
Sent: Friday, December 08, 2006 6:14 AM
To: Katharina Vedovelli
Cc: r-help@stat.math.ethz.ch
Subject: Re: [R] Remove  from a string

On Fri, 2006-12-08 at 14:57 +0100, Katharina Vedovelli wrote:
 Hi all!
 
 I have lots of functions called in the following pattern
 'NameOfFunctionNumber' where the name always stays the same and the number
 varies from 1 to 98.
 Another function which I run in advance returns the number of the function
 which has to be called next.
 
 Now I want to combine 'NameOfFunction' with the 'Number' returned so that
i
 can call the desired function.
 I do this by:
 
 x-c(NameOfFunction,Number)
 z-paste(x,collapse=)
 z
 
 which returns
 
 NameOfFunctionNumber
 
 My Problem is that R doesn't recognise this as the name of my function
 because of the  at the beginning and the end.
 Is there a way of getting rid of those? Or does anybody know another way
of
 solving this problem?
 
 Thanks a lot for your help!
 Cheers,
 Katharina

It is not entirely clear what your ultimate goal is, thus there may be a
(much) better approach than calling functions in this manner. What do
the functions actually do and does the output vary based upon some
attribute (ie. the class) of the argument such that using R's typical
function dispatch method would be more suitable.

However, to address the specific question, at least two options:

 NameOfFunction21 - function(x) x^2

 eval(call(paste(NameOfFunction, 21, sep = ),  21))
[1] 441

 do.call(paste(NameOfFunction, 21, sep = ),  list(21))
[1] 441

In both cases, the result is to evaluate the function call, with 21 as
the argument.  See ?call, ?eval and ?do.call for more information.

HTH,

Marc Schwartz

__
R-help@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
and provide commented, minimal, self-contained, reproducible code.

__
R-help@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
and provide commented, minimal, self-contained, reproducible code.