How to run if and exist ?
    6 views (last 30 days)
  
       Show older comments
    
Hi, 
I'm trying to run this loop.
for year= 1962:2016
        for id=10000:93436          
                sub_regress = subsetPCA(subsetPCA.ID ==id & subsetPCA.years==year,:);
                if size(sub_regress,1) ~= 0
                        [~, IDPCA1, yearsPCA1]= findgroups(sub_regress.ID, sub_regress.years);
                        [~, IDPCAd, datesPCA1] = findgroups(sub_regress.ID, sub_regress.dates);
                        modeltest = fitlm(sub_regress, 'RET~PC1+PC2+PC3+PC4+PC5');
                        RES_PCA = modeltest.Residuals.Raw;
                        RES_PCAtbl= table(IDPCAd,datesPCA1, RES_PCA);
                        RES_PCAtbl.Properties.VariableNames([1 2])  = {'ID' 'dates'};
                        if exist final_residuals 
                                final_residuals =[final_residuals; RES_PCA];
                        else
                                final_residuals = RES_PCA;
                        end
                end
        end
end
For some reason it is not acepting final_residual in the if exist function with if statement? Does someone know how what the problem is? 
Thank you in advance
1 Comment
Accepted Answer
  VBBV
      
      
 on 9 May 2021
        
      Edited: VBBV
      
      
 on 9 May 2021
  
      final_residuals = []
for year= 1962:2016
        for id=10000:93436          
                sub_regress = subsetPCA(subsetPCA.ID ==id & subsetPCA.years==year,:);
                if size(sub_regress,1) ~= 0
                        [~, IDPCA1, yearsPCA1]= findgroups(sub_regress.ID, sub_regress.years);
                        [~, IDPCAd, datesPCA1] = findgroups(sub_regress.ID, sub_regress.dates);
                        modeltest = fitlm(sub_regress, 'RET~PC1+PC2+PC3+PC4+PC5');
                        RES_PCA = modeltest.Residuals.Raw;
                        RES_PCAtbl= table(IDPCAd,datesPCA1, RES_PCA);
                        RES_PCAtbl.Properties.VariableNames([1 2])  = {'ID' 'dates'};
                        A = exist('final_residuals')
                        if A
                                final_residuals =[final_residuals; RES_PCA];
                        else
                                final_residuals = RES_PCA;
                        end
                end
        end
end
More Answers (0)
See Also
Categories
				Find more on Christmas / Winter in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!