Foro de debate

No funciona una función creada

 
Imagen de royer rolda
No funciona una función creada
de royer rolda - martes, 27 de agosto de 2019, 07:00
 

Hola, habia creado una funcion y tenia como objetivo verificar si cumple con ciertos datos y si lo era entonces se almacenaba en otra variable.

 

data = c(12, 20, 11, 16, 18, 32, 22 , 8)
class = function(N){}
  tabla1= c(1:8)
  for (i in length(N)){
    if (data[i]<21.78){
      table1[i]= data[i]
    }
  }
  return(table1)
}
dats <- class(10) # data no return
Imagen de M S
Re: No funciona una función creada
de M S - martes, 27 de agosto de 2019, 09:45
 

¿Es esto lo que buscas? He mantenido tu estructura de código, y simplemente corregido algunas cosas menores. Ayuda que propongas alguna salida como ejemplo para clarificar la duda.


data = c(12, 20, 11, 16, 18, 32, 22 , 8)

class = function(N){

  tabla1= vector()

  for (i in 1:length(data)){

    if (data[i]<21.78){

      tabla1[i]= data[i]

    }

  }

  return(tabla1)

}

(new.var <- class(10) )

Imagen de Manuel Muñoz Márquez
Re: No funciona una función creada
de Manuel Muñoz Márquez - miércoles, 28 de agosto de 2019, 10:36
 

Buenas:

class es una palabra reservada, así que no es buena idea usarla como nombre de función.

Por otra parte, data debería ser un parámetro de la función y no "una variable externa".

Los bucles en R van muy lentos, lo que quieres hacer se puede hacer sin bucles.

Tengo algunas dudas,

  • ¿qué debe tener la salida de la función? ¿N, la misma que data u otra?
  • ¿Cuánto debe valer tabla1[i] si el valor de data[i] >= 21.78?
Si me respondes a estas dos preguntas, te propongo una solución.
Un saludo.