added WeekOverview

This commit is contained in:
Julian Hinxlage 2019-04-25 13:28:07 +02:00
parent 0c3b480023
commit 713d972953
8 changed files with 103 additions and 0 deletions

View File

@ -0,0 +1,73 @@
package de.hsel.spm.baudas.analysis;
import org.jetbrains.annotations.Nullable;
import weka.core.Instance;
import weka.core.Instances;
import weka.filters.Filter;
import weka.filters.unsupervised.attribute.Remove;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
/**
* Week Overview Analysis
*
* @author Julian Hinxlage
* @version 0.1
* @since 0.1
**/
public class WeekOverview implements Analysis<Map<String, Integer>> {
private Instances instances;
private Map<String, Integer> result;
public WeekOverview(File file) {
result = new HashMap<String, Integer>();
instances = load(file);
}
@Override
public Map<String, Integer> getResult() {
int[] keepIndexes = new int[]{5, 10};
int dayIndex = 0;
int amountIndex = 1;
try {
//Remove all other attributes
Remove remove = new Remove();
remove.setAttributeIndicesArray(keepIndexes);
remove.setInvertSelection(true);
remove.setInputFormat(instances);
instances = Filter.useFilter(instances, remove);
} catch (Exception ex) {
ex.printStackTrace();
}
for (int i = 0; i < instances.attribute(dayIndex).numValues(); i++) {
String day = instances.attribute(dayIndex).value(i);
System.out.println(day);
for (int j = 0; j < instances.attribute(amountIndex).numValues(); j++) {
String amount = instances.attribute(amountIndex).value(j);
System.out.println(amount);
int x = Integer.parseInt(amount);
if(!result.containsKey(day)){
result.put(day,0);
}
result.put(day,result.get(day) + x);
}
}
return result;
}
}

View File

@ -0,0 +1,30 @@
package de.hsel.spm.baudas;
import de.hsel.spm.baudas.analysis.WeekOverview;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.util.Map;
/**
* Week Overview Analysis Test
*
* @author Julian Hinxlage
* @version 0.1
* @since 0.1
**/
public class WeekOverviewTest {
@Test
public void test(){
WeekOverview overview = new WeekOverview(new File(getClass().getClassLoader().getResource("kd100.csv").getFile()));
Map<String, Integer> result = overview.getResult();
for(Map.Entry<String, Integer> i : result.entrySet()){
System.out.println(i.getKey() + " = " + i.getValue());
}
}
}