Foro de debate

Problema con if

 
Imagen de Rubén Rodríguez Casañ
Problema con if
de Rubén Rodríguez Casañ - viernes, 25 de agosto de 2017, 11:55
 

Hola a todos, necesito ayuda con un error que me sale y no hay manera de localizar el error. tengo el siguiente código:

#####CONTEO BKN####


valor=1

conteob=0

for(i in V1) {

  if(X[i, 1] == valor) {

    conteob=conteob+1

  } else {

    conteob=conteob

  }

 }

total=length(V1)

conteob

y el error que me salta es el siguiente: 

Error in if (X[i, 1] == valor) { : argumento tiene longitud cero

V1=X[ , 1] y V1 no es más que un vector columna compuesto de 1 y 0.

He probado a reinstalarme de nuevo R pero tampoco.


Imagen de Manuel Muñoz Márquez
Re: Problema con if
de Manuel Muñoz Márquez - domingo, 27 de agosto de 2017, 10:21
 

Buenas:

Si V1 es un vector compuesto por 0 y 1, entonces i en el bucle es 0 o 1, y por tanto, estás intentando acceder a X[0,1] y a X[1,1], el primero de los cuales no existe y por eso dice que el resultado X[i,1]==valor tiene longitud 0.

Si lo que quieres es recorrer la columna 1 de X entonces el for debe ser

for(i in 1:nrow(X))

Un saludo.