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

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

Переменные доступа по наименованию.

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

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

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

Графическое изображение гистограммы.

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

figure
histogram(hospital.Weight)

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

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

Отобразите на графике данные, сгруппированные по категориям.

Чертите диаграммы Weight сгруппированный значениями в Sex (Штекер и Розетка). Таким образом, используйте переменную Sex как сгруппированная переменная.

figure
boxplot(hospital.Weight,hospital.Sex)

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

Диаграмма предполагает, что пол составляет bimodality в весе.

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

Создайте новый массив набора данных только с переменными 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 больше не находится в массиве набора данных.

Смотрите также

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

Больше о