Можете ли вы создать коробку для кровяного давления в сравнении с определенным возрастом (MATLAB) - PullRequest
0 голосов
/ 07 декабря 2018

Для своего проекта я использую набор данных matlab с именем hospital.mat и пытаюсь создать блок-график для артериального давления в зависимости от конкретных возрастных диапазонов (показано ниже).Когда я попытался создать коробочный график, я получил сообщение о том, что размеры матрицы должны совпадать.Я полагаю, что это может быть связано с тем, что данные для артериального давления измеряют как систолическое, так и диастолическое (что хорошо) ИЛИ потому что они собирают полные данные для пациентов всех возрастов, когда я ищу только артериальное давление определенного возрастного диапазона.

Матрица для больницы. Возраст - 100 х 1 в два раза, а матрица для больницы. Кровяное давление - 100 х 2 в два раза

load hospital.mat %Sample data provided by matlab
x=hospital.Age;
x(hospital.Age<35,:)=-1;
x(hospital.Age>=35 & hospital.Age<45)=-2;
x(hospital.Age>=45)=-3;
boxplot(hospital.BloodPressure==x(hospital.Age<35,:),x(hospital.Age<35,:));

Любая помощь будет отличной!Спасибо.

1 Ответ

0 голосов
/ 07 декабря 2018

Вы можете сохранить значения, которые вы задали как переменные группировки, в вашем наборе данных hospital.Второй аргумент boxplot - это группирующая переменная, которая может быть чем угодно, поэтому в вашем случае это могут быть «метки возраста».

Я взял abs из этих ярлыков, чтобы убедиться, что возраст возрастает с левой на правую сторону.

load hospital.mat %Sample data provided by matlab

x = hospital.Age;
x(hospital.Age<35,:) = -1;
x(hospital.Age>=35 & hospital.Age<45) = -2;
x(hospital.Age>=45) = -3;

% store labels in data set to use as grouping variable
hospital.AgeLabels = x;

% create the figure
figure()
ax(1) = subplot(121);
boxplot(hospital.BloodPressure(:,1), abs(hospital.AgeLabels))
title('BloodPressure 1')

ax(2) = subplot(122);
boxplot(hospital.BloodPressure(:,2), abs(hospital.AgeLabels))
title('BloodPressure 2')

% set meaningfull ticklabels for both subplots
for ii = 1:2
    ax(ii).XTickLabels = {'<35', '>=35 & <45', '>= 45'};
end

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...