exponenta event banner

Доступ к данным в переменных массива наборов данных

В этом примере показано, как работать с переменными массива наборов данных и их данными.

Доступ к переменным по имени.

Можно получить доступ к данным переменных или выбрать подмножество переменных, используя имена переменных (столбцов) и точечное индексирование. Загрузите массив образцов наборов данных. Отображение имен переменных в hospital.

load hospital 
hospital.Properties.VarNames(:)
ans = 7x1 cell
    {'LastName'     }
    {'Sex'          }
    {'Age'          }
    {'Weight'       }
    {'Smoker'       }
    {'BloodPressure'}
    {'Trials'       }

Массив наборов данных содержит 7 переменных (столбцов) и 100 наблюдений (строк). Можно дважды щелкнуть hospital в окне Рабочая область для просмотра массива наборов данных в редакторе переменных.

Постройте гистограмму.

Постройте гистограмму данных в переменной Weight.

figure
histogram(hospital.Weight)

Figure contains an axes. The axes contains an object of type histogram.

Гистограмма показывает, что распределение веса является бимодальным.

Печать данных, сгруппированных по категориям.

Нарисовать прямоугольные графики Weight сгруппированы по значениям в Sex (Мужской и женский). То есть использовать переменную Sex в качестве переменной группировки.

figure
boxplot(hospital.Weight,hospital.Sex)

Figure contains an axes. The axes contains 14 objects of type line.

Бокс-сюжет говорит о том, что пол составляет бимодальность в весе.

Выберите подмножество переменных.

Создание нового массива наборов данных только с переменными LastName, Sex, и Weight. Доступ к переменным можно получить по имени или номеру столбца.

ds1 = hospital(:,{'LastName','Sex','Weight'});
ds2 = hospital(:,[1,2,4]);

Массивы наборов данных ds1 и ds2 эквивалентны. Использовать круглые скобки ( ) при индексировании массивов наборов данных для сохранения типа данных; то есть создать массив набора данных из подмножества массива набора данных. Можно также использовать редактор переменных для создания нового массива наборов данных из подмножества переменных и наблюдений.

Преобразование типа данных переменной.

Преобразование типа данных переменной Smoker от логического к номинальному с метками No и Yes.

hospital.Smoker = nominal(hospital.Smoker,{'No','Yes'});
class(hospital.Smoker)
ans = 
'nominal'

Изучите данные.

Отображение первых 10 элементов Smoker.

hospital.Smoker(1:10)
ans = 10x1 nominal
     Yes 
     No 
     No 
     No 
     No 
     No 
     Yes 
     No 
     No 
     No 

Если требуется изменить метки уровней в номинальном массиве, используйте setlabels.

Добавление переменных.

Переменная BloodPressure является массивом «100 на 2». Первый столбец соответствует систолическому артериальному давлению, а второй столбец - диастолическому артериальному давлению. Разделите этот массив на две новые переменные, SysPressure и DiaPressure.

hospital.SysPressure = hospital.BloodPressure(:,1);
hospital.DiaPressure = hospital.BloodPressure(:,2);
hospital.Properties.VarNames(:)
ans = 9x1 cell
    {'LastName'     }
    {'Sex'          }
    {'Age'          }
    {'Weight'       }
    {'Smoker'       }
    {'BloodPressure'}
    {'Trials'       }
    {'SysPressure'  }
    {'DiaPressure'  }

Массив наборов данных, hospital, имеет две новые переменные.

Поиск переменных по имени.

Использовать regexp для поиска переменных в hospital с 'Pressure' от их имени. Создайте новый массив наборов данных, содержащий только эти переменные.

bp = regexp(hospital.Properties.VarNames,'Pressure');
bpIdx = cellfun(@isempty,bp);
bpData = hospital(:,~bpIdx);
bpData.Properties.VarNames(:)
ans = 3x1 cell
    {'BloodPressure'}
    {'SysPressure'  }
    {'DiaPressure'  }

Новый массив наборов данных, bpData, содержит только переменные артериального давления.

Удаление переменных.

Удалить переменную BloodPressure из массива наборов данных, hospital.

hospital.BloodPressure = [];
hospital.Properties.VarNames(:)
ans = 8x1 cell
    {'LastName'   }
    {'Sex'        }
    {'Age'        }
    {'Weight'     }
    {'Smoker'     }
    {'Trials'     }
    {'SysPressure'}
    {'DiaPressure'}

Переменная BloodPressure больше не входит в массив наборов данных.

См. также

Связанные примеры

Подробнее