javier bueno enciso
2018-07-12 09:44:34 UTC
Buenos dias!
Os escribo para ver si me podeis ayudar con un asunto en el que me he quedado un poco encallado.
Lo que tengo que hacer es sacar los percentiles (0.001, 0.005, 0.95 y 0.999) de varias distribuciones beta, concretamente 418. Cada distribucion esta definida por los parametros "shape1" y "shape2". Por lo tanto tengo una base de datos de 418 filas y en cada una de ellas los parametros que me definen la distribucion beta, shape1 y shape2.
Tengo el siguiente codigo:
distrname="beta"
shape1= 0.2 #ejemplo
shape2= 0.3 #ejemplo
quantvector=c(0.001,0.005,0.95,0.999)
(paste("qvector=q",distrname,"(quantvector, shape1, shape2)",sep=""))
eval(parse(text= paste("qvector=q",distrname,"(quantvector, shape1, shape2)",sep="") ))
qvector
Donde tengo problemas es en aplicar el anterior codigo para cada una de las filas de mi base de datos, especificando que shape1 es "mydata$shape1" y shape2 es "mydata$shape2". He pensado que quizas podria hacer una funcion con el anterior codigo y hacer un loop posterior para que me la aplique para cada una de mis filas.
Sin embargo estoy convencido de que tiene que haber una manera mas directa utilizando la funcion "apply" de R o alguna de sus "hermanas", que funcionaria mejor.
Me podriais ayudar? cualquier pista me seria de gran utilidad.
Muchas gracias!!
Javi
P.D. si necesitais cualquier otra info o un ejemplo de los datos, no dudeis en pedirmelo.
[[alternative HTML version deleted]]
Os escribo para ver si me podeis ayudar con un asunto en el que me he quedado un poco encallado.
Lo que tengo que hacer es sacar los percentiles (0.001, 0.005, 0.95 y 0.999) de varias distribuciones beta, concretamente 418. Cada distribucion esta definida por los parametros "shape1" y "shape2". Por lo tanto tengo una base de datos de 418 filas y en cada una de ellas los parametros que me definen la distribucion beta, shape1 y shape2.
Tengo el siguiente codigo:
distrname="beta"
shape1= 0.2 #ejemplo
shape2= 0.3 #ejemplo
quantvector=c(0.001,0.005,0.95,0.999)
(paste("qvector=q",distrname,"(quantvector, shape1, shape2)",sep=""))
eval(parse(text= paste("qvector=q",distrname,"(quantvector, shape1, shape2)",sep="") ))
qvector
Donde tengo problemas es en aplicar el anterior codigo para cada una de las filas de mi base de datos, especificando que shape1 es "mydata$shape1" y shape2 es "mydata$shape2". He pensado que quizas podria hacer una funcion con el anterior codigo y hacer un loop posterior para que me la aplique para cada una de mis filas.
Sin embargo estoy convencido de que tiene que haber una manera mas directa utilizando la funcion "apply" de R o alguna de sus "hermanas", que funcionaria mejor.
Me podriais ayudar? cualquier pista me seria de gran utilidad.
Muchas gracias!!
Javi
P.D. si necesitais cualquier otra info o un ejemplo de los datos, no dudeis en pedirmelo.
[[alternative HTML version deleted]]