public MeanRating[] getMostOftenOccursWith(int id) {
		MeanRating[] result = new MeanRating[itemNames.length];
		int[] intermediateResult = new int[itemNames.length];
		int ratingCount = 0;
		for (BigDecimal[] row : ratings) {
			if (row[id] != null && row[id].intValue() != 0) {
				for (int i = 0; i < itemNames.length; i++) {
					if (i != id && row[i] != null && row[i].intValue() != 0) {
						intermediateResult[i]++;
					}
				}
				ratingCount++;
			}
		}

		for (int i = 0; i < itemNames.length; i++) {
			result[i] = new MeanRating(itemNames[i], new BigDecimal(intermediateResult[i]));
			result[i].setMeanData(result[i].getMeanData().divide(new BigDecimal(ratingCount), new MathContext(3)));
			result[i].setMeanData(result[i].getMeanData().multiply(new BigDecimal(100), new MathContext(3)));
		}

		return result;
	}