public String[] getQuartiles(int c)
	{
		String[] quartiles = { "NaN", "NaN", "NaN", "NaN" };

		//determine type of value in 1st cell
		String type = getColumnType(c);

		//if this is a value we can average it
		if (type.equals("int"))
		{
			int dataLength = ROWS - 1;
			int Q1 = dataLength / 4;
			int Q2 = dataLength / 2;
			int Q3 = Q1 * 3;

			int Q1_DIFF = Q1;
			int Q2_DIFF = Q2 - Q1 - 1;
			int Q3_DIFF = Q3 - Q2 - 1;
			int Q4_DIFF = dataLength - Q3 - 1;

			List<String> l = getColumn(c).subList(0, ROWS);

			int[] Q1_cells = Common.convertStringListToIntArray(l.subList(0, Q1_DIFF));
			String Q1_Average = Cast.DoubleToString(StatsOps.Average(Q1_cells));
			quartiles[0] = Q1_Average;

			int[] Q2_cells = Common.convertStringListToIntArray(l.subList(Q1 + 1, Q2_DIFF));
			String Q2_Average = Cast.DoubleToString(StatsOps.Average(Q2_cells));
			quartiles[1] = Q2_Average;

			int[] Q3_cells = Common.convertStringListToIntArray(l.subList(Q2 + 1, Q3_DIFF));
			String Q3_Average = Cast.DoubleToString(StatsOps.Average(Q3_cells));
			quartiles[2] = Q3_Average;

			int[] Q4_cells = Common.convertStringListToIntArray(l.subList(Q3 + 1, Q4_DIFF));
			String Q4_Average = Cast.DoubleToString(StatsOps.Average(Q4_cells));
			quartiles[3] = Q4_Average;

			return quartiles;
		}
		else if (type.equals("double"))
		{
			int dataLength = ROWS - 1;
			int Q1 = dataLength / 4;
			int Q2 = dataLength / 2;
			int Q3 = Q1 * 3;

			int Q1_DIFF = Q1;
			int Q2_DIFF = Q2 - Q1 - 1;
			int Q3_DIFF = Q3 - Q2 - 1;
			int Q4_DIFF = dataLength - Q3 - 1;

			List<String> l = getColumn(c).subList(0, ROWS);

			double[] Q1_cells = Common.convertStringListToDoubleArray(l.subList(0, Q1_DIFF));
			String Q1_Average = Cast.DoubleToString(StatsOps.Average(Q1_cells));
			quartiles[0] = Q1_Average;

			double[] Q2_cells = Common.convertStringListToDoubleArray(l.subList(Q1 + 1, Q2_DIFF));
			String Q2_Average = Cast.DoubleToString(StatsOps.Average(Q2_cells));
			quartiles[1] = Q2_Average;

			double[] Q3_cells = Common.convertStringListToDoubleArray(l.subList(Q2 + 1, Q3_DIFF));
			String Q3_Average = Cast.DoubleToString(StatsOps.Average(Q3_cells));
			quartiles[2] = Q3_Average;

			double[] Q4_cells = Common.convertStringListToDoubleArray(l.subList(Q3 + 1, Q4_DIFF));
			String Q4_Average = Cast.DoubleToString(StatsOps.Average(Q4_cells));
			quartiles[3] = Q4_Average;

			return quartiles;
		}
		else if (type.equals("float"))
		{
			int dataLength = ROWS - 1;
			int Q1 = dataLength / 4;
			int Q2 = dataLength / 2;
			int Q3 = Q1 * 3;

			int Q1_DIFF = Q1;
			int Q2_DIFF = Q2 - Q1 - 1;
			int Q3_DIFF = Q3 - Q2 - 1;
			int Q4_DIFF = dataLength - Q3 - 1;

			List<String> l = getColumn(c).subList(0, ROWS);

			float[] Q1_cells = Common.convertStringListToFloatArray(l.subList(0, Q1_DIFF));
			String Q1_Average = Cast.FloatToString(StatsOps.Average(Q1_cells));
			quartiles[0] = Q1_Average;

			float[] Q2_cells = Common.convertStringListToFloatArray(l.subList(Q1 + 1, Q2_DIFF));
			String Q2_Average = Cast.FloatToString(StatsOps.Average(Q2_cells));
			quartiles[1] = Q2_Average;

			float[] Q3_cells = Common.convertStringListToFloatArray(l.subList(Q2 + 1, Q3_DIFF));
			String Q3_Average = Cast.FloatToString(StatsOps.Average(Q3_cells));
			quartiles[2] = Q3_Average;

			float[] Q4_cells = Common.convertStringListToFloatArray(l.subList(Q3 + 1, Q4_DIFF));
			String Q4_Average = Cast.FloatToString(StatsOps.Average(Q4_cells));
			quartiles[3] = Q4_Average;

			return quartiles;
		}
		else
			return quartiles;
	}