Yes, you can do clustering on a single variable. Suppose you know that there are two groups in your data and want to separate them automatically, you could use clustering to do that. Run the following example:
/* Generate example data with 2 clusters in variable x */
data test;
do x = 1,2,3,4,5,12,13,14;
id = put(x,2.);
output;
end;
run;
/* Form all clusters */
proc cluster data=test outtree=tree method=centroid noprint;
var x;
id id;
run;
/* Isolate top 2 clusters */
proc tree data=tree out=clusters nclusters=2 noprint;
run;
/* Get quantiles */
proc rank data=test fraction out=quantiles;
var x;
ranks quantile;
run;
/* Assemble clusters and quantiles */
proc sql;
select Q.id, Q.x, Q.quantile label="Quantile", C.cluster
from clusters as C inner join quantiles as Q on C._NAME_=Q.id
order by cluster, x;
quit;
Observations are assigned to the proper cluster. The quantiles are just like rescaled ranks.
PG
PG