es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es posible extraer el valor de una función de múltiples puntos utilizando R?

¡Hola y gracias por leer!

Construí una función ecdf usando RStudio y estoy tratando de obtener las probabilidades que corresponden a ciertos puntos (en formato de lista). Mi código en R se ve así:

input <- read.table('/home/agalvez/data/domains/test_ecdf.txt', sep="\t", header=TRUE)

<h1>Construir la función</h1>

myecdf <- ecdf(input$X118.4)

<h1>Graficar la función</h1>

plot(myecdf, main = "CDF", xlab = "Puntuación de bits", ylab = "Probabilidad") +
abline(v = 25, col = "red")

<h1>Extraer probabilidades</h1>

myecdf(100)

Como puedes ver, puedo extraer la probabilidad de un punto a la vez. Pero si intento obtener más de uno, obtengo un mensaje de error. Adjuntaré a continuación las cosas que he intentado y no han funcionado.

myecdf(100, 2, 4, ...)
Error in myecdf(100, 2, 4) : unused arguments (2, 4)
myecdf(100)
myecdf(2)
myecdf(4)
...
Este enfoque me da los resultados así en la consola:
> myecdf(100)
[1] 0.8048582
> myecdf(2)
[1] 1.382514e-05
> myecdf(4)
[1] 0.0005875684

Me gustaría que fueran una lista.

myecdf(100, 2, 4, ...)
Error in myecdf(100, 2, 4) : unused arguments (2, 4)

Cualquier ayuda sería muy apreciada, disculpa por molestar con esta pregunta simple, pero soy bastante nuevo en R ¡y gracias de antemano!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener las probabilidades que corresponden a una lista de puntos, puede utilizar la función sapply o lapply de la siguiente manera:

    “`{r}
    points <- c(100, 2, 4)
    probs <- sapply(points, myecdf)
    probs


    Esto le dará una lista de probabilidades que corresponden a los puntos en su vector `points`: ```{r} [1] 0.8048582 0.0000138 0.0005876

    Alternativamente, puede envolver la función sapply con la función as.list para obtener una lista de probabilidades:

    “`{r}
    points <- c(100, 2, 4)
    probs <- as.list(sapply(points, myecdf))
    probs


    Esto le dará una lista de probabilidades: ```{r} [[1]] [1] 0.8048582 [[2]] [1] 1.382514e-05 [[3]] [1] 0.0005875684

    ¡Espero que esto sea de ayuda!

Comments are closed.