SAS: Use PROC FREQ & Show No Percentages


Mastering Frequency Tables in SAS: Suppressing Percentages for Clearer Insights

In the crucial domain of data analysis and statistical reporting, a foundational task involves understanding the underlying data distribution. Generating accurate frequency tables is an indispensable first step, particularly when summarizing the characteristics of categorical variables. The industry-leading SAS statistical package utilizes the highly efficient and flexible procedure, PROC FREQ, which serves as the definitive mechanism for computing these vital distributions. While PROC FREQ is designed to produce comprehensive statistical output—including raw observation counts, cumulative totals, and several percentage metrics—there are frequent and critical analytical scenarios where presenting only the absolute frequencies is necessary to maintain report clarity, focus, and direct interpretability.

This comprehensive technical guide provides expert instruction on refining the output of PROC FREQ in SAS to generate highly customized frequency tables. Our primary objective is to demonstrate the exact syntax and methodology required to effectively suppress all unwanted percentage and cumulative values, ensuring that your statistical reports are concise, impactful, and precisely aligned with executive or regulatory reporting requirements. We will explore practical, syntax-driven options applicable to both simple one-way distributions and more complex two-way contingency tables, thereby granting data analysts granular control over their final published output.

Achieving mastery over the output controls of PROC FREQ is fundamental for advancing your capabilities in data analysis. By strategically omitting proportional metrics, you actively streamline the presentation of results, directing the audience’s attention exclusively to the absolute numbers of observations. This technique proves particularly valuable in high-stakes formal reporting environments, where raw population counts or absolute metrics often hold greater weight and significance than secondary proportional calculations.

Understanding the Default Verbosity of PROC FREQ

The PROC FREQ procedure, integral to the SAS ecosystem, is fundamentally engineered to produce detailed summaries for one-way, two-way, and multi-way cross-tabulation tables. By default, the procedure generates a verbose output that includes a comprehensive set of statistics for every category or cell: raw frequencies, cumulative frequencies, overall table percentages, and cumulative percentages. While this exhaustive detail is beneficial during the exploratory data analysis (EDA) phase, this statistical abundance can often dilute the core message or obscure the primary counts required for clear executive summaries and operational reports.

To counteract this default verbosity, PROC FREQ is equipped with powerful output options designed to allow users to meticulously tailor the generated tables. These critical options for suppressing unwanted percentage and cumulative data are specified directly within the TABLES statement, immediately following the designation of the variables being analyzed. The key suppression options include: NOPERCENT (used to remove overall percentages), NOCUM (used to remove cumulative frequency and percentage columns), NOROW (used to remove row percentages specifically in two-way tables), and NOCOL (used to remove column percentages in two-way tables).

The choice and combination of these output options must be carefully calibrated based on the complexity of the table being generated—specifically, whether you are creating a simple one-way distribution or a more intricate two-way contingency table—and the precise statistics you intend to keep or omit. Mastering these options transforms PROC FREQ from a comprehensive statistical generator into a precision reporting tool.

Method 1: Suppress Percentages in One-Way Frequency Table

proc freq data=my_data order=freq;
    tables my_variable / nopercent nocum;
run;

Method 2: Suppress Percentages in Two-Way Frequency Table

proc freq data=my_data order=freq;
    tables my_variable1*my_variable2 / norow nocol nopercent nocum;
run;

Preparing the Data: Utilizing the sashelp.BirthWgt Dataset

To rigorously demonstrate the practical application of these specialized PROC FREQ methods, we will leverage a highly suitable, built-in SAS resource: the sashelp.BirthWgt dataset. This dataset is an excellent choice for statistical demonstrations, as it encompasses a substantial volume of data (100,000 observations) detailing various characteristics pertinent to maternal health and birth outcomes. Analyzing such a comprehensive, large-scale dataset ensures that our examples of frequency analysis are robust, realistic, and reflective of professional, real-world data processing demands.

Before launching into any form of frequency analysis, a critical best practice in data analysis requires inspecting the underlying data structure. Viewing a small subset of the observations is essential to confirm the variable names, verify data types, and gain an immediate sense of the overall content. For this crucial initial inspection, we will execute the PROC PRINT procedure to display the first 10 records from the sashelp.BirthWgt library. This provides an essential snapshot of the variables that will be selected for our subsequent frequency table demonstrations.

The following code executes the data inspection, providing immediate context for key variables such as Race and Married. These variables are ideal candidates for demonstrating how to properly handle categorical variables in frequency analysis, serving as the basis for our suppressed output examples.

/*view first 10 observations from BirthWgt dataset*/
proc print data=sashelp.BirthWgt (obs=10);

run;

The resulting output confirms the existence of several necessary demographic and health indicators, notably Race and Married. Since these variables are inherently categorical, they are perfectly suited for illustrating both the default, verbose output and the streamlined, suppressed output of a frequency table generation process.

Practical Example 1: Streamlining the One-Way Table

We begin our hands-on demonstration by constructing a fundamental one-way frequency table for the Race variable, utilizing the sashelp.BirthWgt dataset. This initial execution is deliberately designed to establish a clear baseline by showcasing the complete, default output generated by PROC FREQ when no output options are explicitly specified. Understanding the default state is crucial before attempting customization.

The following simple code snippet executes the default frequency analysis, setting the stage for comparison:

/*create frequency table for Race variable*/
proc freq data=sashelp.BirthWgt;
	tables Race;
run;

frequency table in SAS

Upon observing the default table output, it is immediately clear that SAS systematically provides four distinct, standard columns: Frequency (the raw count), Percent (the percentage of the total sample), Cumulative Frequency, and Cumulative Percent. While statistically comprehensive, in reporting contexts where the focus must remain strictly on the absolute magnitude of observations within each category, the proportional and cumulative columns introduce unnecessary visual clutter, potentially detracting from the core message of the descriptive statistics.

To generate a highly streamlined table that exclusively features the raw counts, we must apply the foundational suppression options: NOPERCENT and NOCUM. These options are appended directly to the TABLES statement, acting as definitive instructions to PROC FREQ to exclude both the proportional (percent) and the running-total (cumulative) columns, thus resulting in a clean, count-focused output designed for maximum directness and interpretability in reporting.

/*create frequency table for Race variable and suppress percentages*/ 
proc freq data=sashelp.BirthWgt;
    tables Race / nopercent nocum;
run;

SAS PROC FREQ with no percentages

The revised output successfully presents only the raw Frequency for each racial group. This streamlined, minimal view directly fulfills the requirement for raw counts, providing a significantly more concise output that places all emphasis solely on the absolute number of observations without the distraction of percentage calculations.

Practical Example 2: Controlling Output in Two-Way Contingency Tables

Moving beyond simple one-way distributions, PROC FREQ is exceptionally adept at generating two-way frequency tables, which are universally known in statistical practice as contingency tables. These powerful tables are essential for visually representing the joint distribution and assessing the relationship between two distinct categorical variables. For this example, we will analyze the joint distribution of the Race and Married variables from our sample dataset, beginning once more with the procedure’s default, comprehensive output to highlight the problem of complexity.

Executing the following code produces the standard two-way cross-tabulation, which includes all default percentage metrics:

/*create frequency table for Race and Married variables*/
proc freq data=sashelp.BirthWgt;
	tables Race*Married;
run;

The complexity of the default output is dramatically increased in a two-way table. For every single cell (the intersection defined by a row category and a column category), SAS reports four distinct metrics: Frequency (the raw cell count), Percent (percentage of the total table), Row Percent (percentage relative to its respective row total), and Column Percent (percentage relative to its respective column total). While statistically exhaustive, this level of density can severely overwhelm the reader if the primary analytical objective is simply to present the absolute number of cases falling into each category pairing.

To successfully eliminate all proportional data and isolate only the raw counts in a two-way frequency table, we must strategically combine three specific suppression options on the TABLES statement: NOROW (to remove the row percentages), NOCOL (to eliminate the column percentages), and NOPERCENT (to suppress the overall table percentage). This powerful combination ensures that the resulting output retains only the essential frequency count in each cell, achieving maximum clarity and conciseness for reporting purposes.

/*create frequency table for Race and Married variables and suppress percentages*/ 
proc freq data=sashelp.BirthWgt;
    tables Race*Married / norow nocol nopercent;
run;

SAS frequency table with no row and no column percentages

The resulting table definitively demonstrates the effectiveness of this approach. By utilizing NOROW, NOCOL, and NOPERCENT, the output is successfully transformed into a highly refined summary that displays only the raw Frequency. This streamlined presentation is invaluable for reports where the focus is strictly on the absolute number of observations, significantly enhancing the readability and the direct impact of your statistical findings.

Conclusion: Optimizing SAS Output for Precision Reporting

The capability to meticulously customize and streamline statistical output is a defining characteristic of sophisticated professional data analysis practice. While the PROC FREQ procedure in SAS is undeniably powerful and comprehensive by default, its true utility is maximized only when analysts can precisely control the level of detail presented. We have clearly demonstrated that by strategically employing the options NOPERCENT, NOCUM, NOROW, and NOCOL, you gain the necessary power to produce focused frequency tables that highlight only the raw counts relevant to your specific analytical objectives.

Regardless of whether your requirement is a simple one-way distribution or a complex two-way contingency table, mastering these output suppression techniques is vital. It ensures that your data presentation is never diluted or obscured by superfluous proportional values. Furthermore, removing percentages drastically improves the overall readability of your reports and decisively directs the audience’s focus to the absolute magnitude of the counts, which, in descriptive statistics, is often the most critical metric for decision-making.

We strongly encourage all data professionals to embrace these customization methods to significantly elevate the clarity, professionalism, and overall effectiveness of their statistical reporting. Experimentation with these options across various datasets will help you discover the optimal balance between statistical detail and necessary conciseness for every unique analytical requirement within the SAS programming environment.

Further Exploration and Resources

To deepen your expertise in the SAS system and its extensive suite of procedures, we highly recommend regular exploration of the official documentation and specialized tutorials. These resources are invaluable for unlocking more advanced capabilities, ensuring compliance with best practices, and continually refining your data analysis techniques.

The following authoritative resources provide additional context and detailed documentation for the procedures discussed:

Cite this article

Mohammed looti (2025). SAS: Use PROC FREQ & Show No Percentages. PSYCHOLOGICAL STATISTICS. Retrieved from https://statistics.arabpsychology.com/sas-use-proc-freq-show-no-percentages/

Mohammed looti. "SAS: Use PROC FREQ & Show No Percentages." PSYCHOLOGICAL STATISTICS, 16 Nov. 2025, https://statistics.arabpsychology.com/sas-use-proc-freq-show-no-percentages/.

Mohammed looti. "SAS: Use PROC FREQ & Show No Percentages." PSYCHOLOGICAL STATISTICS, 2025. https://statistics.arabpsychology.com/sas-use-proc-freq-show-no-percentages/.

Mohammed looti (2025) 'SAS: Use PROC FREQ & Show No Percentages', PSYCHOLOGICAL STATISTICS. Available at: https://statistics.arabpsychology.com/sas-use-proc-freq-show-no-percentages/.

[1] Mohammed looti, "SAS: Use PROC FREQ & Show No Percentages," PSYCHOLOGICAL STATISTICS, vol. X, no. Y, ص Z-Z, November, 2025.

Mohammed looti. SAS: Use PROC FREQ & Show No Percentages. PSYCHOLOGICAL STATISTICS. 2025;vol(issue):pages.

Download Post (.PDF)
Scroll to Top