在示例中:
load hospital
T = dataset2table(hospital)
我转换成了一张桌子,因为我觉得可能更容易使用。但是,如果答案中的方法适用于数据集或表格,我真的不在乎。我想获取每一列,因此" LastName"," Sex"等获取其基础数据类型,并为每个列创建一个新变量。有没有办法在不迭代表(即内置函数)的情况下完成此操作?至少如果我不能转换为其基础类型,我可以将它们分成单个单元格数组吗?
最终结果将在工作空间中包含变量:
姓氏
性
年龄
重量
吸烟者
血压
试验
答案 0 :(得分:0)
我认为功能findgroups
和/或splitapply
可能对您有帮助!
这是一个链接,您可以在其中查看它们的工作原理:
答案 1 :(得分:0)
使用表格,如果您想自动生成变量LastName
,Sex
,Age
等,您可以:
Properties.VariableNames
属性中现在的问题在于创建用于在工作空间中存储数据的单个变量的名称。
您可以通过将数据存储在允许动态生成字段名称的struct
中来解决此问题。
因此,您可以在表格中的变量名称之后生成字段的名称。
拟议方法的可能实施方法是:
% Load the data
load hospital
% Convert dataset to table
T = dataset2table(hospital)
% Get the name of the varaibles
var_names=T.Properties.VariableNames
% Identify the number of varaibles (to be used in the next loop)
n_var=length(var_names)
% Store the data in a struct
% Get the name of the rows
hospital_data.row_names=T.Properties.RowNames;
% Loop over the variables
% Create dynamically the names of the fields of the struct after the name
% of the variables
for i=1:n_var
hospital_data.(var_names{i})=T{:,i}
end
这会生成名为struct
的{{1}},其字段为:
hospital_data
希望这有帮助,
Qapla'