package timeflow.data.analysis; import timeflow.data.analysis.DBAnalysis.*; import timeflow.data.db.*; import timeflow.data.db.filter.*; public class MissingValueAnalysis implements FieldAnalysis { int numNull; int percent; @Override public String getName() { return "Missing/Blank Values"; } @Override public String[] getResultDescription() { String s; if (numNull==0) s="No missing values"; else if (numNull==1) s= "One missing value"; else s=numNull+" missing values: "+percent+"%"; return new String[] {s}; } @Override public InterestLevel perform(ActList acts, Field field) { numNull=DBUtils.count(acts, new MissingValueFilter(field)); percent=(int)Math.round(100*numNull/(double)acts.size()); if (numNull==0) return InterestLevel.IGNORE; if (numNull<5) return InterestLevel.VERY_INTERESTING; return InterestLevel.INTERESTING; } @Override public boolean canHandleType(Class type) { return true; } }