How to add variables to a table that are products of other variables
2 次查看(过去 30 天)
显示 更早的评论
If I have a table of 46 variables and I want to add on new variables to this table which are the squares and cubes of some of these variables (columns 10 and 12-18) how can I accomplish this? I would be adding on 16 new variables (columns) in all to the original table.
0 个评论
采纳的回答
Walter Roberson
2017-10-10
cur_varnames = YourTable.Properties.VariableNames;
for K = [10, 12:18]
thisvarname = cur_varnames{K};
thisval = YourTable.(thisvarname);
sq_varname = [thisvarname '_squared'];
cu_varname = [thisvarname '_cubed'];
YourTable.(sq_varname) = thisval .^ 2;
YourTable.(cu_varname) = thisval .^ 3;
end
更多回答(1 个)
Andrei Bobrov
2017-10-10
编辑:Andrei Bobrov
2017-10-10
Let T - your table.
ts = reshape(T{:,[10,12:18]}.^reshape(2:3,1,1,[]),size(T,1),[]);
newname = cellstr(reshape(string(T(:,[10,12:18]).Properties.VariableNames)'...
+'_'+["squares","cube"],1,[]));
Tout = [T,array2table(ts,'VariableNames',newname)];
1 个评论
Walter Roberson
2017-10-11
(Note: the above code requires R2017a or later as it uses some properties of the new string data type)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!