Foro de debate

Función simple

Función simple

by Samuel Naranjo De Zulategi -
Number of replies: 1
Hola estoy tratando de resolver el siguiente ejercicio:

Escriba una función que tome como argumentos un vector numérico y su nombre (imagine que el vector numérico es una variable) y que como resultado regrese el valor mínimo, máximo, promedio y la desviación estándar en una línea de texto de la siguiente manera:: “El valor promedio de la variable XX es XX, su valor mínimo es igual a XX, su valor máximo es igual a XX y tiene una desviación estándar de XX” cuando el contenido de la matriz es numérico. Si el vector no es numérico deberá aparecer una línea de texto que diga: “La variable XX no es numérica”.

Hasta ahora he hecho lo siguiente, sin embargo, no me funciona (alguien tiene alguna idea?):

estadisticas_descriptivas<-function(x){

  promedio<-mean(x)

  maximo<-max(x)

  minimo<-min(x)

  desviacion<-sd(x)

  if (is.numeric(x)==T){paste("El valor promedio de la variable",x, "es",promedio<-mean(x), "su valor mínimo

                               es igual a",minimo<-min(x), "su valor máximo es igual a", maximo<-max(x), "y tiene una desviación estándar

                               de", desviacion<-sd(x))} else {paste("La variable",x, "no es numérica")}

}


In reply to Samuel Naranjo De Zulategi

Re: Función simple

by Manuel Muñoz Márquez -

Buenas Samul:

Cuando pasas una variable a una función pasas su contenido y no su nombre, para lo que quieres puedes pasar las dos cosas por separado. Pero esto parece un ejercicio de clase y el foro no es para eso.

estadisticas_descriptivas<-function(nombrex, x) {
    promedio<-mean(x)
    maximo<-max(x)
    minimo<-min(x)
    desviacion<-sd(x)
    if (is.numeric(x)==T) {
        paste("El valor promedio de la variable",nombrex, "es",promedio<-mean(x), "su valor mínimo es igual a",minimo<-min(x), "su valor máximo es igual a", maximo<-max(x), "y tiene una desviación estándar de", desviacion<-sd(x))
    } else {
        paste("La variable",nombrex, "no es numérica")
    }
}

Un saludo