Hola,

Puedes hacerlo de esta manera a partir de lo que te he comentado:

>
> f<-function(fun_x,x0) {
+                         x <-x0
+                         eval(parse(text = fun_x))
+                       }
> f("x^3",10)
[1] 1000
>

Fíjate en el detalle de que la función que quieres evaluar, se introduce
como una cadena de caracteres que luego se evalúa con "eval".

De todas formas, tienes disponible en R una librería que permite la
integración numérica multidimensional.

R2Cuba <http://cran.at.r-project.org/web/packages/R2Cuba/index.html>Multidimensional
Numerical Integration


Saludos,
Carlos Ortega
www.qualityexcellence.es
www.datanalytics.com/blog

2011/1/7 Mar Jm <mjumilhe7@gmail.com>

> Muchas gracias Carlos. Tu respuesta me funciona si yo evalúo "manualmente"
> una función, pero mi intención es crear una función en la que, introduciendo
> una función (como x al cuadrado, x al cubo, etc) y un punto me de el valor
> de esa función en ese punto. Haciendo eso me da el error de "argumento
> no-numérico para operador binario". Todo esto viene porque quiero crear un
> programa en el que, introduciendo una función y un intervalo, me diga la
> integral aproximada en dicho intervalo. Para ello, necesito evaluar la
> función en distintos puntos del intervalo, y es ahí donde tengo el problema,
> pues no hay forma de crear una función en la que, introduciendo una función
> y un punto me devuelva el valor, sino que siempre me sigue dando el error
> anterior.
>
> Por ejemplo, lo que yo he hecho es crear la función f<-function(x,a){x(a)}
>
>
> De esta función espero que, si yo introduzco una función cualquiera y un
> punto a, me devuelva un valor. Como por ejemplo, si hago lo siguiente
> f(x^3,2) pensaba que me devolvería el valor 8 (2^3=8), pero en su lugar me
> da el error.
>
> ¿Qué estoy haciendo mal?
>
> Muchas gracias de nuevo y disculpad las molestias.
>
>
>
>
>
>
> El 7 de enero de 2011 23:29, Carlos Ortega <coforfe@gmail.com> escribió:
>
> Hola,
>>
>> Una forma de hacerlo es esta:
>>
>> x <- 42
>> eval(parse(text = "x^2"))
>>
>>
>> Con esta idea, puedes crear tu propia función para que tanto puedes pasar
>> como argumento tanto el punto, como la ecuación donde quieres encontrar su
>> valor.
>>
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>> www.datanalytics.com/blog
>>
>> 2011/1/7 Mar Jm <mjumilhe7@gmail.com>
>>
>>>  Hola a todos!
>>>
>>> Soy un novato con R y, como suele pasar, tengo algunas dudas que me
>>> gustaría
>>> compartir con vosotros. Antes de nada decir que llevo muchas horas
>>> buscando
>>> información y peleándome con los manuales, tanto en inglés como en
>>> español,
>>> pero no sé como resolver mi problema que es el siguiente:
>>>
>>> ¿Cómo puedo hacer para crear un programa con el que, al darle una función
>>> y
>>> un punto, me diga que valor tiene? Es decir, si yo introduzco x^2 y el
>>> punto
>>> 2, que me diga que vale 4 (2^2=4). La idea sería poder poner cualquier
>>> tipo
>>> de función, pero si me dáis una solución que sólo sirva para introducir
>>> funciones polinómicas también me sirve. Lo que yo he hecho es lo
>>> siguiente,
>>> en el que la x seria la función a introducir y a sería el punto donde
>>> quiero
>>> evaluar la función x:
>>>
>>>  > evaluarfuncion<-function(x,a){
>>>        x(a)}
>>>
>>> Con esta función me da error si introduzco lo siguiente:
>>>
>>> > evaluarfuncion(x^3,3)
>>> Error en x^3 : argumento no-numérico para operador binario
>>>
>>> ¿De qué se trata el error? ¿Qué estoy haciend mal?
>>>
>>> Muchas gracias, aunque os pueda parecer una pregunta tonta, ya no sé como
>>> solucionarlo...
>>>
>>>
>>> Saludos,
>>>
>>> Marc
>>>
>>>        [[alternative HTML version deleted]]
>>>
>>>
>>> _______________________________________________
>>> R-help-es mailing list
>>> R-help-es@r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>>
>>
>

	[[alternative HTML version deleted]]

