Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Limpie los datos desordenados y faltantes en tablas

En este ejemplo se muestra cómo buscar, limpiar y eliminar filas de tabla con datos que faltan.

Cargue datos de muestra

Cargue datos de ejemplo de un archivo de texto separado por comas,.messy.csv El archivo contiene muchos indicadores de datos faltantes diferentes:

  • Vector de caracteres vacío (' ')

  • período (.)

  • NA

  • Nan

  • -99

Para especificar los vectores de caracteres que se tratarán como valores vacíos, utilice el argumento de par nombre-valor con la función.'TreatAsEmpty'readtable (Utilice la función para mostrar las 21 filas, incluso cuando se ejecuta este ejemplo como un script en vivo.)disp

T = readtable('messy.csv','TreatAsEmpty',{'.','NA'}); disp(T)
      A        B        C       D       E       ______    ____    _____    ____    ____      'afe1'       3    'yes'       3       3     'egh3'     NaN    'no'        7       7     'wth4'       3    'yes'       3       3     'atn2'      23    'no'       23      23     'arg1'       5    'yes'       5       5     'jre3'    34.6    'yes'    34.6    34.6     'wen9'     234    'yes'     234     234     'ple2'       2    'no'        2       2     'dbo8'       5    'no'        5       5     'oii4'       5    'yes'       5       5     'wnk3'     245    'yes'     245     245     'abk6'     563    ''        563     563     'pnj5'     463    'no'      463     463     'wnn3'       6    'no'        6       6     'oks9'      23    'yes'      23      23     'wba3'     NaN    'yes'     NaN      14     'pkn4'       2    'no'        2       2     'adw3'      22    'no'       22      22     'poj2'     -99    'yes'     -99     -99     'bas8'      23    'no'       23      23     'gry5'     NaN    'yes'     NaN      21 

es una tabla con 21 filas y cinco variables. solo se aplica a las columnas numéricas del archivo y no puede controlar los valores numéricos especificados como texto, como.T'TreatAsEmpty''-99'

Para resumir tabla

Vea el tipo de datos, la descripción, las unidades y otras estadísticas descriptivas para cada variable mediante la creación de un resumen de tabla mediante la función.summary

summary(T)
Variables:      A: 21x1 cell array of character vectors      B: 21x1 double          Values:              Min            -99              Median         14               Max            563              NumMissing     3         C: 21x1 cell array of character vectors      D: 21x1 double          Values:              Min            -99              Median         7                Max            563              NumMissing     2         E: 21x1 double          Values:              Min       -99             Median     14             Max       563 

Al importar datos desde un archivo, el valor predeterminado es para leer cualquier variable con elementos no numéricos como una matriz de vectores de caracteres de celda.readtable

Buscar filas con valores faltantes

Mostrar el subconjunto de filas de la tabla, que tienen al menos un valor que falta.T

TF = ismissing(T,{'' '.' 'NA' NaN -99}); rowsWithMissing = T(any(TF,2),:); disp(rowsWithMissing)
      A        B       C       D      E      ______    ___    _____    ___    ___      'egh3'    NaN    'no'       7      7     'abk6'    563    ''       563    563     'wba3'    NaN    'yes'    NaN     14     'poj2'    -99    'yes'    -99    -99     'gry5'    NaN    'yes'    NaN     21 

reemplaza y con las variables numéricas,,, y.readtable'.''NA'NanBDE

Reemplazar indicadores de valor perdidos

Limpie los datos para que los valores faltantes indicados por el código tengan el indicador de valor de falta numérico de MATLAB® estándar.-99Nan

T = standardizeMissing(T,-99); disp(T)
      A        B        C       D       E       ______    ____    _____    ____    ____      'afe1'       3    'yes'       3       3     'egh3'     NaN    'no'        7       7     'wth4'       3    'yes'       3       3     'atn2'      23    'no'       23      23     'arg1'       5    'yes'       5       5     'jre3'    34.6    'yes'    34.6    34.6     'wen9'     234    'yes'     234     234     'ple2'       2    'no'        2       2     'dbo8'       5    'no'        5       5     'oii4'       5    'yes'       5       5     'wnk3'     245    'yes'     245     245     'abk6'     563    ''        563     563     'pnj5'     463    'no'      463     463     'wnn3'       6    'no'        6       6     'oks9'      23    'yes'      23      23     'wba3'     NaN    'yes'     NaN      14     'pkn4'       2    'no'        2       2     'adw3'      22    'no'       22      22     'poj2'     NaN    'yes'     NaN     NaN     'bas8'      23    'no'       23      23     'gry5'     NaN    'yes'     NaN      21 

reemplaza tres instancias de with.standardizeMissing-99Nan

Cree una nueva tabla y reemplace los valores faltantes por valores de las filas anteriores de la tabla. proporciona varias maneras de rellenar los valores faltantes.T2fillmissing

T2 = fillmissing(T,'previous'); disp(T2)
      A        B        C       D       E       ______    ____    _____    ____    ____      'afe1'       3    'yes'       3       3     'egh3'       3    'no'        7       7     'wth4'       3    'yes'       3       3     'atn2'      23    'no'       23      23     'arg1'       5    'yes'       5       5     'jre3'    34.6    'yes'    34.6    34.6     'wen9'     234    'yes'     234     234     'ple2'       2    'no'        2       2     'dbo8'       5    'no'        5       5     'oii4'       5    'yes'       5       5     'wnk3'     245    'yes'     245     245     'abk6'     563    'yes'     563     563     'pnj5'     463    'no'      463     463     'wnn3'       6    'no'        6       6     'oks9'      23    'yes'      23      23     'wba3'      23    'yes'      23      14     'pkn4'       2    'no'        2       2     'adw3'      22    'no'       22      22     'poj2'      22    'yes'      22      22     'bas8'      23    'no'       23      23     'gry5'      23    'yes'      23      21 

Eliminar filas con valores faltantes

Cree una tabla nueva, que contenga solo las filas sin valores faltantes. tiene sólo 16 filas.T3TT3

T3 = rmmissing(T); disp(T3)
      A        B        C       D       E       ______    ____    _____    ____    ____      'afe1'       3    'yes'       3       3     'wth4'       3    'yes'       3       3     'atn2'      23    'no'       23      23     'arg1'       5    'yes'       5       5     'jre3'    34.6    'yes'    34.6    34.6     'wen9'     234    'yes'     234     234     'ple2'       2    'no'        2       2     'dbo8'       5    'no'        5       5     'oii4'       5    'yes'       5       5     'wnk3'     245    'yes'     245     245     'pnj5'     463    'no'      463     463     'wnn3'       6    'no'        6       6     'oks9'      23    'yes'      23      23     'pkn4'       2    'no'        2       2     'adw3'      22    'no'       22      22     'bas8'      23    'no'       23      23 

contiene 16 filas y cinco variables.T3

Organizar datos

Ordene las filas en orden descendente por y, a continuación, ordene en orden ascendente por.T3CA

T3 = sortrows(T2,{'C','A'},{'descend','ascend'}); disp(T3)
      A        B        C       D       E       ______    ____    _____    ____    ____      'abk6'     563    'yes'     563     563     'afe1'       3    'yes'       3       3     'arg1'       5    'yes'       5       5     'gry5'      23    'yes'      23      21     'jre3'    34.6    'yes'    34.6    34.6     'oii4'       5    'yes'       5       5     'oks9'      23    'yes'      23      23     'poj2'      22    'yes'      22      22     'wba3'      23    'yes'      23      14     'wen9'     234    'yes'     234     234     'wnk3'     245    'yes'     245     245     'wth4'       3    'yes'       3       3     'adw3'      22    'no'       22      22     'atn2'      23    'no'       23      23     'bas8'      23    'no'       23      23     'dbo8'       5    'no'        5       5     'egh3'       3    'no'        7       7     'pkn4'       2    'no'        2       2     'ple2'       2    'no'        2       2     'pnj5'     463    'no'      463     463     'wnn3'       6    'no'        6       6 

En, las filas se agrupan primero por, seguido de.C'yes''no' A continuación, en, las filas se enumeran alfabéticamente.A

Reordenar la tabla para que y estén al lado de la otra.AC

T3 = T3(:,{'A','C','B','D','E'}); disp(T3)
      A         C       B       D       E       ______    _____    ____    ____    ____      'abk6'    'yes'     563     563     563     'afe1'    'yes'       3       3       3     'arg1'    'yes'       5       5       5     'gry5'    'yes'      23      23      21     'jre3'    'yes'    34.6    34.6    34.6     'oii4'    'yes'       5       5       5     'oks9'    'yes'      23      23      23     'poj2'    'yes'      22      22      22     'wba3'    'yes'      23      23      14     'wen9'    'yes'     234     234     234     'wnk3'    'yes'     245     245     245     'wth4'    'yes'       3       3       3     'adw3'    'no'       22      22      22     'atn2'    'no'       23      23      23     'bas8'    'no'       23      23      23     'dbo8'    'no'        5       5       5     'egh3'    'no'        3       7       7     'pkn4'    'no'        2       2       2     'ple2'    'no'        2       2       2     'pnj5'    'no'      463     463     463     'wnn3'    'no'        6       6       6 

Consulte también

| | | | | |

Temas relacionados