我想计算不丢失值的列中日期的出现次数.因此,例如,我想计算汽车维修的次数,而不是包括没有服务日期的空值.
我尝试了简单的计数功能,但它带来了所有记录.我想过使用'case',但我不确定语法.我正在使用SAS Enterprise Guide.
样品日期
id car service_Date
1 honda 01/01/2005
2 honda 01/01/2006
3 honda
4 honda 01/01/2008
5 honda
6 honda 01/01/2010
Run Code Online (Sandbox Code Playgroud)
结果:我想只有4作为答案,所以它不计算空值.
PROC SQL;
CREATE TABLE WORK.QUERY_FOR_CARS AS
SELECT
t1.CAR,
t1.ID
/* SERVICE_DATE */
(count (case when t1.S_DATE is not null then 0 end)) AS SERVICE_DATE
FROM WORK.QUERY_FOR_CAR_SERVICE
GROUP BY t1.S_DATE;
QUIT;
Run Code Online (Sandbox Code Playgroud)
我添加了我正在使用的代码.它给出了日期的计数,但也包括日期值为空的位置.
给定一个名为CARS的SAS数据集,其中包含示例中的变量,您可以在SQL中以两种不同的方式找到具有非缺失值service_date的观察数:
proc sql;
select count(service_date) as num_not_missing
from cars;
select count(*) as num_not_missing
from cars
where service_date is not null;
quit;
Run Code Online (Sandbox Code Playgroud)
第一个示例指定count函数中的service_date变量,该变量将忽略缺失值.第二个在应用where子句后计算所有行.两者表现相同.
| 归档时间: |
|
| 查看次数: |
28381 次 |
| 最近记录: |