Normand Briere
2018-07-07 09ddd38fd4a8a7100c834a5e976f4796fae53541
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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;
   }
}