package ca.joeltherrien.randomforest; import ca.joeltherrien.randomforest.covariates.Covariate; import lombok.Getter; import lombok.RequiredArgsConstructor; import java.util.HashMap; import java.util.List; import java.util.Map; @RequiredArgsConstructor public class CovariateRow { private final Map valueMap; @Getter private final int id; public Covariate.Value getCovariateValue(String name){ return valueMap.get(name); } @Override public String toString(){ return "CovariateRow " + this.id; } public static CovariateRow createSimple(Map simpleMap, List covariateList, int id){ final Map valueMap = new HashMap<>(); final Map covariateMap = new HashMap<>(); covariateList.forEach(covariate -> covariateMap.put(covariate.getName(), covariate)); simpleMap.forEach((name, valueStr) -> { if(covariateMap.containsKey(name)){ valueMap.put(name, covariateMap.get(name).createValue(valueStr)); } }); return new CovariateRow(valueMap, id); } }