2015-11-20 110 views
0

原始数据文件如下:输出数据集中有多少观察值?

RANCH,1250,2,1,Sheppard Avenue, "$64,000" 
SPLIT,1190,1,1,Rand Street, "$65,850" 
CONDON, 1400,2,1,Market Street, "80,050" 
TWOSTORY, 1810,4,3,Garris Street, "$107,250" 
RANCH, 1500,3,3,Kemble Avenue, "$86,650" 
SPLIT, 1615, 4,3, West Drive, "94,450" 
SPLIT, 1305, 3,1.5,Graham Avenue, "$73,650" 

以下是代码:

data work.condo_ranch; 
    infield "file_specificaton" did; 
    input style $ @; 
    if style = 'CONDO' or style = 'RANCH' then 
    input sqfeet bedrooms baths street $ price: dollar10.; 
run; 

所以,我认为输出数据集包含3个观测,而正确的答案是,输出包含7个观察。有谁告诉我为什么?非常感谢您的时间和关注。

回答

0

为什么你会期望输出数据集只有3个观察值。 DATA步骤底部有一个隐含的OUTPUT语句。如果你想输出只有那些记录,风格(“酒店”,“牧场”),你可以添加一个条件输出,如:

if style = 'CONDO' or style = 'RANCH' then do; 
    input sqfeet bedrooms baths street $ price: dollar10.; 
    output; 
end; 
0

如果你只是要输出的记录,其中风格CONDO或牧场吗你可以把你的THEN改成分号。这会使你的IF声明成为subsetting IF。因此,数据步骤将在该点返回,并且不会在步骤结束时运行第二个INPUT或隐含的OUTPUT。