public void getpercentages() {
HashMap<String, Double> temp_shares = new HashMap<String, Double>();
HashMap<String, Double> final_shares = new HashMap<String, Double>();
Double total_temp_shares = 0.0;
Double total_final_shares = 0.0;
for (int x = 0 ; x < drugs_to_analyze.length; x++) {
// Set overall market shares for niaspan
if (drugs_to_analyze[x].equals("Niaspan")) {
for (Drug it : drugs) {
if (it.getname().equals(drugs_to_analyze[x])) {
temp_shares.put(it.getname(), it.getmarket_share());
it.setmarket_share(0.25 * it.getmarket_share());
final_shares.put(it.getname(), it.getmarket_share());
}
}
}
// Calculate information on combination drugs
if (drugs_to_analyze[x].contains("_Niaspan")) {
String[] temp = drugs_to_analyze[x].split("_");
for (Drug it : drugs) {
if (it.getname().equals(temp[0])) {
temp_shares.put(it.getname(), it.getmarket_share());
}
}
}
}
// Calculate market shares for drugs combined with Niaspan
for (Double it : temp_shares.values()) {
total_temp_shares += it;
}
// Set overall market shares for combinations with Niaspan, and non-combination drugs (excluding Niaspan)
for (int x = 0 ; x < drugs_to_analyze.length; x++) {
for (Drug it : drugs) {
if (drugs_to_analyze[x].equals(it.getname()) && it.getname().contains("_Niaspan")) {
String[] temp = it.getname().split("_");
it.setmarket_share(temp_shares.get("Niaspan") * .75 * (temp_shares.get(temp[0]) / (total_temp_shares - temp_shares.get("Niaspan"))));
final_shares.put(it.getname(), it.getmarket_share());
}
else if (!drugs_to_analyze[x].contains("_") && !drugs_to_analyze[x].contains("Niaspan") &&
it.getname().equals(drugs_to_analyze[x])) {
final_shares.put(it.getname(), it.getmarket_share());
}
}
}
// Find out percentages to be used for each Drug
// Calculate totals from final shares
for (Double it : final_shares.values()) {
total_final_shares += it;
}
// Calculate percentages based on totals
for (Map.Entry it : final_shares.entrySet()) {
percentages.put(it.getKey().toString(), (Double.parseDouble(it.getValue().toString()) / total_final_shares));
}
}