Hello, I would like to count the number of non-nan values in the d column for unique combinations of a, b and c (i.e I want to generate the e column in tt). If any a,b or c are NaN then the count should be nan as well.
% Initial table a = [1,1,1,2,2,2,2]'; b = [660, 661, 661, 663, 663, NaN, 663]'; c = [1,2,2,5,5,NaN,6]'; d = [11,12,NaN, 13, 14, NaN,5]'; t = table(a,b,c,d)
t = 7x4 table a b c d _ ___ ___ ___ 1 660 1 11 1 661 2 12 1 661 2 NaN 2 663 5 13 2 663 5 14 2 NaN NaN NaN 2 663 6 5
% Desired output a = [1,1,1,2,2,2,2]'; b = [660, 661, 661, 663, 663, NaN, 663]'; c = [1,2,2,5,5,NaN,6]'; d = [11,12,NaN, 13, 14, NaN,5]'; e = [1, 1, 1, 2, 2, NaN, 1]'; tt = table(a,b,c,d,e)
tt = 7x5 table a b c d e _ ___ ___ ___ ___ 1 660 1 11 1 1 661 2 12 1 1 661 2 NaN 1 2 663 5 13 2 2 663 5 14 2 2 NaN NaN NaN NaN 2 663 6 5 1
NOTE:-
Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help , Finance Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.
% Initial table a = [1;1;1;2;2;2;2]; b = [660; 661; 661; 663; 663; NaN; 663]; c = [1;2;2;5;5;NaN;6]; d = [11;12;NaN; 13; 14; NaN;5]; t = table(a,b,c,d)
t = 7x4 table a b c d _ ___ ___ ___ 1 660 1 11 1 661 2 12 1 661 2 NaN 2 663 5 13 2 663 5 14 2 NaN NaN NaN 2 663 6 5
G = {'a','b','c'}; F = @(x)nnz(~isnan(x)); T = groupsummary(t,G,F,'d'); [~,~,idx] = unique(t(:,G),'rows'); e = T.fun1_d(idx); e(any(isnan(t{:,G}),2)) = NaN; tt = addvars(t,e)
SEE COMPLETE ANSWER CLICK THE LINK
Comments
Post a Comment