分类变量是“unique_carrier”,如下所示: enter image description here
我想计算变量“unique_carrier”中每个载波的数量,我在SAS中的代码如下,
PROC MEANS DATA=schedule_Jan NOPRINT;
BY unique_carrier _CHARACTER_ ;
OUTPUT OUT= flight_count COUNT(unique_carrier) =number_of_flights;
RUN;
但运行此行时出现问题(如下所示),日志是,我想知道COUNT函数是否可以用于计数分类变量:
222 OUTPUT OUT= flight_count COUNT(unique_carrier) =number_of_flights;
-----
22
76
ERROR 22-322: Syntax error, expecting one of the following: ;, (, /, CSS, CV, IDGROUP, IDGRP,
KURTOSIS, LCLM, MAX, MAXID, MEAN, MEDIAN, MIN, MINID, MODE, N, NMISS, OUT, P1,
P10, P20, P25, P30, P40, P5, P50, P60, P70, P75, P80, P90, P95, P99, PROBT, Q1,
Q3, QRANGE, RANGE, SKEWNESS, STDDEV, STDERR, SUM, SUMWGT, T, UCLM, USS, VAR.
ERROR 76-322: Syntax error, statement will be ignored.
答案 0 :(得分:1)
您可以使用PROC FREQ
来获取点数。
proc freq data=schedule_Jan ;
tables unique_carrier / noprint out=flight_count ;
run;
这将具有变量COUNT中UNIQUE_CARRIER的每个值的观察数。如果需要,您可以添加数据集选项以将其重命名为NUMBER_OF_FLIGHTS。
或者您可以使用PROC MEANS
(又名PROC SUMMARY)。
proc summary data=schedule_Jan nway;
class unique_carrier;
output out=flight_count ;
run;
这将包含变量_FREQ_中的观察数量。您可以使用dataset选项重命名此选项,或将N=number_of_flights
添加到OUTPUT
语句,以添加具有相同计数的另一个变量。
或者您甚至可以通过编写一些SQL代码来“自己动手”。
proc sql ;
create table flight_count as
select unique_carrier
, count(*) as number_of_flights
from schedule_Jan
group by 1
order by 1
;
quit;