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

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

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

Вы можете получить доступ к данным переменных или выбрать подмножество переменных с помощью имен переменных (столбцов) и индексации точек. Загрузите образец массива набора данных. Отобразите имена переменных в 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 больше не находится в массиве набора данных.

См. также

Похожие примеры

Подробнее о