Encuentre la posición de índice del primer valor no NA en el vector en R

Un vector atómico contiene elementos que pertenecen al mismo tipo de datos. También puede contener valores faltantes o NA, en cualquier índice dentro del rango de este vector. Se puede acceder a estos valores de NA en R mediante métodos de indexación estándar. En este artículo, vamos a ver cómo encontrar la posición de índice del primer valor no NA en un vector en el lenguaje de programación R.

Método 1: Usar los métodos is.na() y which()

El método de negación is.na() se aplica primero sobre el vector atómico, que devuelve un vector booleano de la misma longitud, donde VERDADERO indica que el valor no es na y FALSO indica que falta un valor o NA. A esto le sigue la aplicación del método which() que devuelve los índices de los valores non-na. Luego se aplica la función agregada min() para obtener el primero o el mínimo de elementos de todos los índices. 

Código:

R

# declaring a vector
vec <- c(NA, NA, 2, NA, 5, 7)
print ("Original Vector")
print (vec)
  
# getting indexes of all the non na elements
non_na_vec <- which(!is.na(vec))
  
# determining the minimum from these indices
first_non_na <- min(non_na_vec)
print ("First non-na index")
print (first_non_na)

Producción:

[1] "Original Vector"
[1] NA NA  2 NA  5  7
[1] "First non-na index"
[1] 3

En caso de que el vector no contenga ningún valor que no falte, este enfoque genera una excepción y devuelve Inf 

Mensaje de advertencia:

En min(non_na_vec): no faltan argumentos para min; regresando Inf

Método 2: método which.max()

El método which.max() devuelve el primer argumento que se encuentra dentro del vector con un valor que no es na. El método tiene la siguiente sintaxis en R : 

which.max(vec)

Código:

R

# declaring a vector
vec <- c(NA, 1, 3, NA, 2, NA, 5, 7)
print ("Original Vector")
print (vec)
  
# getting indexes of all the non na elements
non_na_vec <- which.max(!is.na(vec))
print ("First non-na index")
print (non_na_vec)

Producción:

[1] "Original Vector"
[1] NA  1  3 NA  2 NA  5  7
[1] "First non-na index"
[1] 2

Publicación traducida automáticamente

Artículo escrito por mallikagupta90 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *