All pastes #492061 Raw Edit

Mine

public text v1 · immutable
·published 2007-05-17 00:02 UTC
rendered paste body
	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));
			}
	}