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.

Acceso a datos mediante matrices categóricas

Seleccione datos por categoría

La selección de datos en función de sus valores suele ser útil. Este tipo de selección de datos puede implicar la creación de un vector lógico basado en valores en una variable y, a continuación, el uso de ese vector lógico para seleccionar un subconjunto de valores en otras variables. Puede crear un vector lógico para seleccionar datos encontrando valores en una matriz numérica que se encuentren dentro de un rango determinado. Además, puede crear el vector lógico encontrando valores discretos específicos. Al utilizar matrices categóricas, puede fácilmente:

  • Para matrices categóricas, utilice los operadores lógicos o para seleccionar datos que se encuentran en una categoría determinada o no están en ella.Select elements from particular categories.==~= Para seleccionar datos en un grupo determinado de categorías, utilice la función.ismember

    Para matrices categóricas ordinales, utilice desigualdades, o para buscar datos en categorías por encima o por debajo de una categoría determinada.>>=<<=

  • Utilice operadores lógicos para incluir o excluir datos de categorías concretas.Delete data that is in a particular category.

  • Las matrices categóricas indican qué elementos no pertenecen a una categoría definida.Find elements that are not in a defined category.<undefined> Utilice la función para buscar observaciones sin un valor definido.isundefined

Formas comunes de acceder a los datos mediante matrices categóricas

En este ejemplo se muestra cómo indexar y buscar mediante matrices categóricas. Puede acceder a los datos mediante matrices categóricas almacenadas en una tabla de forma similar.

Cargue datos de muestra

Cargue los datos de muestra recopilados de 100 pacientes.

load patients whos
  Name                            Size            Bytes  Class      Attributes    Age                           100x1               800  double                  Diastolic                     100x1               800  double                  Gender                        100x1             12212  cell                    Height                        100x1               800  double                  LastName                      100x1             12416  cell                    Location                      100x1             15008  cell                    SelfAssessedHealthStatus      100x1             12340  cell                    Smoker                        100x1               100  logical                 Systolic                      100x1               800  double                  Weight                        100x1               800  double                

Crear matrices categóricas a partir de matrices de celdas de vectores de caracteres

y contienen datos que pertenecen a categorías.GenderLocation Cada matriz de celdas contiene vectores de caracteres tomados de un pequeño conjunto de valores únicos (indicando dos géneros y tres ubicaciones respectivamente). Convertir y a matrices categóricas.GenderLocation

Gender = categorical(Gender); Location = categorical(Location);

Busque miembros de una única categoría

Para las matrices categóricas, puede usar los operadores lógicos y buscar los datos que se encuentran en una categoría determinada o no en ella.==~=

Determine si hay algún paciente observado en el lugar,.'Rampart General Hospital'

any(Location=='Rampart General Hospital')
ans = logical
   0

No se observan pacientes en el hospital general de Rampart.

Búsqueda de miembros de un grupo de categorías

Puede usar para buscar datos en un grupo determinado de categorías.ismember Crear un vector lógico para los pacientes observados en o.County General HospitalVA Hospital

VA_CountyGenIndex = ...     ismember(Location,{'County General Hospital','VA Hospital'});

es una matriz lógica de 100 por 1 que contiene Logical () para cada elemento de la matriz categórica que es miembro de la categoría o.VA_CountyGenIndextrue1LocationCounty General HospitalVA Hospital La salida contiene 76 elementos distintos de cero.VA_CountyGenIndex

Utilice el vector lógico, para seleccionar los pacientes observados en cualquiera o.VA_CountyGenIndexLastNameCounty General HospitalVA Hospital

VA_CountyGenPatients = LastName(VA_CountyGenIndex);

es una matriz de celdas de 76 por 1 de vectores de caracteres.VA_CountyGenPatients

Seleccione elementos en una categoría determinada para trazar

Utilice la función para imprimir un resumen que contenga los nombres de categoría y el número de elementos de cada categoría.summary

summary(Location)
     County General Hospital        39       St. Mary's Medical Center      24       VA Hospital                    37  

es una matriz categórica de 100 por 1 con tres categorías. se produce en 39 elementos, en 24 elementos, y en 37 elementos.LocationCounty General HospitalSt. Mary s Medical CenterVA Hospital

Utilice la función para imprimir un resumen de.summaryGender

summary(Gender)
     Female      53       Male        47  

es una matriz categórica de 100 por 1 con dos categorías. se produce en 53 elementos y se produce en 47 elementos.GenderFemaleMale

Utilice el operador lógico para acceder a la edad de sólo las pacientes femeninas.== A continuación, trace un histograma de estos datos.

figure() histogram(Age(Gender=='Female')) title('Age of Female Patients')

traza los datos de edad de las 53 pacientes femeninas.histogram(Age(Gender=='Female'))

Eliminar datos de una categoría determinada

Puede utilizar operadores lógicos para incluir o excluir datos de categorías concretas. Elimine todos los pacientes observados desde las variables del espacio de trabajo y.VA HospitalAgeLocation

Age = Age(Location~='VA Hospital'); Location = Location(Location~='VA Hospital');

Ahora, es una matriz numérica de 63 por 1, y es una matriz categórica de 63 por 1.AgeLocation

Enumere las categorías de, así como el número de elementos en cada categoría.Location

summary(Location)
     County General Hospital        39       St. Mary's Medical Center      24       VA Hospital                     0  

Los pacientes observados en se eliminan de, pero sigue siendo una categoría.VA HospitalLocationVA Hospital

Utilice la función para eliminar de las categorías de.removecatsVA HospitalLocation

Location = removecats(Location,'VA Hospital');

Compruebe que se ha quitado la categoría.VA Hospital

categories(Location)
ans = 2x1 cell array
    {'County General Hospital'  }
    {'St. Mary's Medical Center'}

es una matriz categórica de 63 por 1 que tiene dos categorías.Location

Eliminar elemento

Puede eliminar elementos indexando. Por ejemplo, puede eliminar el primer elemento seleccionando el resto de los elementos.LocationLocation(2:end) Sin embargo, una manera más fácil de eliminar elementos es usar.[]

Location(1) = []; summary(Location)
     County General Hospital        38       St. Mary's Medical Center      24  

es una matriz categórica de 62 por 1 que tiene dos categorías.Location La eliminación del primer elemento no tiene ningún efecto en otros elementos de la misma categoría y no elimina la propia categoría.

Compruebe si hay datos no definidos

Quite la categoría de.County General HospitalLocation

Location = removecats(Location,'County General Hospital');

Mostrar los ocho primeros elementos de la matriz categórica,.Location

Location(1:8)
ans = 8x1 categorical array
     St. Mary's Medical Center 
     <undefined> 
     St. Mary's Medical Center 
     St. Mary's Medical Center 
     <undefined> 
     <undefined> 
     St. Mary's Medical Center 
     St. Mary's Medical Center 

Después de eliminar la categoría, los elementos que anteriormente pertenecían a esa categoría ya no pertenecen a ninguna categoría definida.County General HospitalLocation Las matrices categóricas denotan estos elementos como.undefined

Utilice la función para buscar observaciones que no pertenezcan a ninguna categoría.isundefined

undefinedIndex = isundefined(Location);

es una matriz categórica de 62 por 1 que contiene Logical () para todos los elementos no definidos en.undefinedIndextrue1Location

Establecer elementos no definidos

Utilice la función para imprimir el número de elementos no definidos en.summaryLocation

summary(Location)
     St. Mary's Medical Center      24       <undefined>                    38  

El primer elemento pertenece a la categoría,.LocationSt. Mary's Medical Center Establezca el primer elemento para que ya no pertenezca a ninguna categoría.undefined

Location(1) = '<undefined>'; summary(Location)
     St. Mary's Medical Center      23       <undefined>                    39  

Puede crear elementos seleccionados sin quitar una categoría o cambiar las categorías de otros elementos.undefined Establezca elementos para que indiquen elementos con valores desconocidos.undefined

Preasigne matrices categóricas con elementos no definidos

Puede utilizar elementos no definidos para preasignar el tamaño de una matriz categórica para mejorar el rendimiento. Cree una matriz categórica que tenga elementos solo con ubicaciones conocidas.

definedIndex = ~isundefined(Location); newLocation = Location(definedIndex); summary(newLocation)
     St. Mary's Medical Center      23  

Amplíe el tamaño de modo que sea una matriz categórica de 200 por 1.newLocation Establezca el último elemento nuevo en ser.undefined Todos los otros elementos nuevos también están configurados para ser.undefined Los 23 elementos originales guardan los valores que tenían.

newLocation(200) = '<undefined>'; summary(newLocation)
     St. Mary's Medical Center       23       <undefined>                    177  

tiene espacio para los valores que planea almacenar en la matriz más adelante.newLocation

Consulte también

| | | | | |

Ejemplos relacionados

Más acerca de