Reemplace Inf con NA en Vector & Data Frame en R (Ejemplo)

Se el primero en calificar

Muchas veces en el análisis de datos, es necesario reemplazar valores en un vector o data frame. En este tutorial, se muestra cómo hacerlo en R utilizando el ejemplo de un vector que contiene valores Inf (infinitos).

Usando la función is.na(), podemos reemplazar todos los valores Inf con NA en un vector o data frame.

¿Cómo reemplazamos Inf con NA en un Vector en R?

El código a continuación sustituye todos los valores de Inf por NA en el vector:

vec <- c(1, 2, 3, Inf, 5)

vec[vec == Inf] <- NA

Remplazar valores en un vector es una tarea común en el análisis de datos. A veces, un valor atípico puede ser el resultado de un cálculo o un valor que no se puede determinar. En estos casos, es posible que desee reemplazar el valor atípico con un valor NA. Esto se puede hacer de varias maneras en R.

Una forma de reemplazar valores en un vector es usar la función replace () . Esta función reemplaza un valor específico en un vector con otro valor. Por ejemplo, si desea reemplazar todos los valores de Inf con NA en el vector, puede usar el código:

vec <- c (1, 2, 3, Inf, 5) replace (vec, vec == Inf, NA)

Tenga en cuenta que la función replace () reemplaza todos los valores de Inf en el vector. Si desea reemplazar solo un valor de Inf, puede especificar el índice del valor que desea reemplazar. Por ejemplo, si solo desea reemplazar el quinto valor en el vector, puede usar el código:

vec <- c (1, 2, 3, Inf, 5) replace (vec, 5, NA)

Otra forma de reemplazar valores en un vector es usar la función is.na () . Esta función indica si un valor es NA. Por ejemplo, si desea reemplazar todos los valores de Inf con NA en el vector, puede usar el código:

vec <- c (1, 2, 3, Inf, 5) vec [is.na (vec)] <- NA

La función is.na () también se puede usar para reemplazar valores en un data frame. En el ejemplo siguiente, se reemplazan todos los valores de Inf en el data frame con NA.

df <- data.frame (x = c (1, 2, 3, Inf, 5), y = c ("a", "b", "c", "d", "e")) df [is.na (df $ x), "x"] <- NA

Cómo reemplazar Inf con NA en un Data Frame en R

El uso de la función is.na () permite identificar fácilmente los valores perdidos. Sin embargo, en algunos casos, es posible que desee reemplazar estos valores con un valor específico, como 0 o una cadena de texto. Afortunadamente, R proporciona varias formas de hacer esto.

La función na.fill () le permite reemplazar fácilmente los valores perdidos en un data.frame.

Por ejemplo, supongamos que tenemos el siguiente data.frame:

> data frame (x = c (1, 2, 3, NA, 5), y = c («a», «b», «c», NA, «e»))

> data.frame (x = c (1, 2, 3, NA, 5), y = c («a», «b», «c», NA, «e»))

x y

1 1 a

2 2 b

3 3 c

4 NA d

5 5 e

Podemos reemplazar los valores perdidos de la columna x con la función na.fill (), como se muestra a continuación:

> na.fill (data $ x, 0)

[1] 1 2 3 0 5

Tenga en cuenta que el data.frame original no se modifica. Si desea modificar el data.frame original, puede usar la función na.fill () como un argumento en la función data.frame ().

> data.frame (data, x = na.fill (data $ x, 0))

x y

1 1 a

2 2 b

3 3 c

4 0 d

5 5 e

Otra forma de reemplazar los valores perdidos es mediante el uso de la función na.replace ().

Esta función le permite reemplazar los valores perdidos en un data.frame con un valor específico.

Por ejemplo, podemos reemplazar los valores perdidos de la columna x con la función na.replace (), como se muestra a continuación:

> na.replace (data $ x, 0)

[1] 1 2 3 0 5

Tenga en cuenta que, al igual que con la función na.fill (), el data.frame original no se modifica. Si desea modificar el data.frame original, puede usar la función na.replace () como un argumento en la función data.frame ().

> data.frame (data, x = na.replace (data $ x, 0))

x y

1 1 a

2 2 b

3 3 c

4 0 d

5 5 e

Reemplazar Inf con NA en un Vector & Data Frame en R

Inf puede surgir en R como resultado de algunas operaciones matemáticas legítimas, pero a menudo es el resultado de los datos faltantes o errores. En consecuencia, Inf a menudo es un valor indeseable en los vectores y los data frames.

Reemplazar Inf con NA en un vector

Una forma de lidiar con Inf es reemplazarlo con un valor NA. Esto se puede lograr de varias maneras.

La función is.finite() puede detectar valores Inf:

is.finite(c(1,2,Inf))
[1] TRUE TRUE FALSE
La función is.na() puede detectar valores NA:

is.na(c(1,2,NA))
[1] FALSE FALSE TRUE
Por lo tanto, is.na(is.finite(x)) puede usarse para identificar los elementos de un vector x que son Inf:

x <- c(1,2,Inf) is.na(is.finite(x)) [1] FALSE FALSE TRUE Una forma de usar esto para reemplazar Inf con NA es la siguiente: x[is.na(is.finite(x))] <- NA x [1] 1 2 NA Otra forma es usar la función is.infinite(): x <- c(1,2,Inf) is.infinite(x) [1] FALSE FALSE TRUE x[is.infinite(x)] <- NA x [1] 1 2 NA Alternativamente, la función replace() puede usarse para reemplazar valores específicos en un vector: x <- c(1,2,Inf) replace(x, is.infinite(x), NA) [1] 1 2 NA Reemplazar Inf con NA en un data frame La función apply() se puede usar para aplicar una función a cada columna (o fila) de un data frame. En este caso, usaremos la función replace() para reemplazar Inf con NA en cada columna del data frame mtcars: mtcars[is.infinite(mtcars)] <- NA apply(mtcars, 2, replace, list = c(Inf, -Inf), na.rm = FALSE) mpg cyl disp hp drat wt qsec vs am gear carb MazdaRX4 21 6 160 110 3.90 2.620 16.46 0.0 1.0 4 4 MazdaRX4W 21 6 160 110 3.90 2.875 17.02 0.0 1.0 4 4 Datsun710 22.8 4 108 93 3.85 2.320 18.61 1.0 1.0 4 1 Hornet4Drive21.4 6 258 110 3.08 3.215 19.44 1.0 0.0 3 1 HornetSportabout18.7 8 360 175 3.15 3.440 17.02 0.0 0.0 3 2 Valiant 18.1 6 225 105 2.76 3.460 20.22 1.0 0.0 3 1 Duster360 14.3 8 360 245 3.21 3.570 15.84 0.0 0.0 3 4 Merc240D 24.4 4 146 62 3.69 3.190 20.00 1.0 0.0 4 2 Merc230 22.8 4 140 95 3.92 3.150 22.90 1.0 0.0 4 2 Merc280 19.2 6 168 123 3.92 3.440 18.30 1.0 0.0 4 4 Merc280C 17.8 6 168 123 3.92 3.440 18.90 1.0 0.0 4 4 Fiat128 32.4 4 78.7 66 4.08 2.200 19.47 1.0 1.0 4 1 HondaCivic 30.4 4 75.7 52 4.93 1.615 18.52 1.0 1.0 4 2 ToyotaCorolla 33.9 4 71.1 65 4.22 1.835 19.90 1.0 1.0 4 1 ToyotaCorona 21.5 4 120.1 97 3.70 2.465 20.01 1.0 0.0 3 1 DodgeChallenger15.5 8 318 150 2.76 3.520 16.87 0.0 0.0 3 2 AMCJavelin 13.3 8 304 150 3.73 3.435 17.30 0.0

En resumen, si quieres reemplazar Inf con NA en un vector o data frame en R, puedes usar la función is.finite() o complete.cases() para encontrar los valores Inf, luego usa la función which() para encontrar la posición de esos valores en el vector o data frame y finalmente reemplaza esos valores con NA. Espero que esto ayude.

La función Reemplace Inf con NA en Vector & Data Frame en R es utilizada para reemplazar valores Inf (infinito) con NA en un vector o data frame. Esto es útil si se necesita limpiar un conjunto de datos para que pueda ser procesado por otras funciones.

Alejandro Lugon Administrator

Alejandro Lugón es un economista y escritor especializado en Python y R, conocido por ser el creador del blog Estadisticool. Nacido enxico, Lugón se graduó de la Universidad Autónoma dexico con una Licenciatura en Economía. Desde entonces ha trabajado como economista en varias empresas. Lugón también ha escrito varios libros sobre temas relacionados con la economía, el análisis de datos y la programación. Su blog Estadisticool se ha convertido en un lugar de referencia para los programadores de Python y R. Alejandro Lugón es una inspiración para aquellos que buscan aprender programación y análisis de datos. Su trabajo ha ayudado a muchas personas a entender mejor el uso de la tecnología para hacer sus trabajos.

Deja un comentario

La tilde (~) es un carácter especial que se usa en R para indicar que lo que sigue es un…