Proc Freq根据内容合并结果行

时间:2019-02-04 17:53:57

标签: sas

我正在对大量用户输入的数据进行Proc Freq,我想知道是否可以根据第一列的内容合并结果行。

1 个答案:

答案 0 :(得分:0)

您似乎想执行第一个单词(或列的第一个scan开头部分)的频率。在这种情况下,将需要进行数据处理,以将较长的值减小为期望的缩短值(以不同的变量进行频率合并)。

data have;
  input;
  user_entered_data = _infile_;
  datalines;
Nyfaria - January
Nyfaria - Febuary
Michelangelo - January
Michelangelo - Feburary
run;

data have_for_freq;
  set have;
  item = scan (user_entered_data,1,' ');
run;

options nocenter;
ods noproctitle;

proc freq data=have_for_freq;
  title "Freq of raw data";
  table user_entered_data;
run;

proc freq data=have_for_freq;
  title "Freq of raw data formatted as $4.";
  table user_entered_data;
  format user_entered_data $4.;
run;

proc freq data=have_for_freq;
  title "Freq of raw data - item scanned out";
  table item;
run;

enter image description here

注意:在某些情况下,您可以使用format来控制原始值到报告值的映射。没有返回值的第一个“单词”的格式(例如scan一样)