valores una reemplazar por perdidos imputar faltantes datos contar con columna cambiar r missing-data imputation locf

una - reemplazar valores perdidos en r



Cómo reemplazar NA(valores perdidos) en un marco de datos con valores vecinos (2)

Dependiendo de los datos tidyr::fill() podría ser una opción:

library(tidyverse) df %>% fill(x) # single column x df %>% fill(x, y) # multiple columns, x and y df %>% fill(x, .direction = ''up'') # filling from the bottom up rather than top down

862 2006-05-19 6.241603 5.774208 863 2006-05-20 NA NA 864 2006-05-21 NA NA 865 2006-05-22 6.383929 5.906426 866 2006-05-23 6.782068 6.268758 867 2006-05-24 6.534616 6.013767 868 2006-05-25 6.370312 5.856366 869 2006-05-26 6.225175 5.781617 870 2006-05-27 NA NA

Tengo un marco de datos x como el de arriba, con algunos NA, que quiero rellenar con valores adyacentes que no sean de NA, como para el 2006-05-20, será de 19 y 22

¿Cómo se hace la pregunta?


Formato correcto de sus datos se ve así

862 2006-05-19 6.241603 5.774208 863 2006-05-20 NA NA 864 2006-05-21 NA NA 865 2006-05-22 6.383929 5.906426 866 2006-05-23 6.782068 6.268758 867 2006-05-24 6.534616 6.013767 868 2006-05-25 6.370312 5.856366 869 2006-05-26 6.225175 5.781617 870 2006-05-27 NA NA

y es de una naturaleza de series de tiempo. Así que cargaría en un objeto del zoo de clase (del paquete del zoo ) ya que le permite elegir una serie de estrategias, vea a continuación. La opción que elija dependerá de la naturaleza de sus datos y de su aplicación. En general, el campo de "descifrar datos faltantes" se llama imputación de datos y existe una literatura bastante extensa.

R> x <- zoo(X[,3:4], order.by=as.Date(X[,2])) R> x x y 2006-05-19 6.242 5.774 2006-05-20 NA NA 2006-05-21 NA NA 2006-05-22 6.384 5.906 2006-05-23 6.782 6.269 2006-05-24 6.535 6.014 2006-05-25 6.370 5.856 2006-05-26 6.225 5.782 2006-05-27 NA NA R> na.locf(x) # last observation carried forward x y 2006-05-19 6.242 5.774 2006-05-20 6.242 5.774 2006-05-21 6.242 5.774 2006-05-22 6.384 5.906 2006-05-23 6.782 6.269 2006-05-24 6.535 6.014 2006-05-25 6.370 5.856 2006-05-26 6.225 5.782 2006-05-27 6.225 5.782 R> na.approx(x) # approximation based on before/after values x y 2006-05-19 6.242 5.774 2006-05-20 6.289 5.818 2006-05-21 6.336 5.862 2006-05-22 6.384 5.906 2006-05-23 6.782 6.269 2006-05-24 6.535 6.014 2006-05-25 6.370 5.856 2006-05-26 6.225 5.782 R> na.spline(x) # spline fit ... x y 2006-05-19 6.242 5.774 2006-05-20 5.585 5.159 2006-05-21 5.797 5.358 2006-05-22 6.384 5.906 2006-05-23 6.782 6.269 2006-05-24 6.535 6.014 2006-05-25 6.370 5.856 2006-05-26 6.225 5.782 2006-05-27 5.973 5.716 R>