2013-05-29 48 views
1

我的问题可能很简单,对你我来说,这是一个很大的障碍:D。SAS插入日期到宏变量,然后到数据集

我需要一个与用户交互的窗口,他可以在其中写出日期,他希望查看数据(记录用于回归)。

%let dateP; 
%window wprowadz 
"insert date (ddmmyyyy):" dateP required = yes; 
%display wprowadz; 

,之后

data lab4.firmy2; 
set lab4.firmy; 
if first.nazwa then 
    data=symget("dataP"); 
    zamkniecie=.; 
keep nazwa data zamkniecie; 
by nazwa; 

当然这使所需要的表达成宏变量。试图将其放入数据集中仅在以天为单位在窗口中插入日期(例如17168)时才会带来结果。然而这不足以满足。

我需要的是能够以yyyy-mm-dd或dd-mm-yyyy格式插入日期,然后可以将其转换为天,以便我可以整齐地使用它。我已经尝试了很多次,没有结果。

任何帮助将不胜感激:)

回答

2

这样的事情应该工作。使用您的首选信息从文本字符串输入它。

data lab4.firmy2; 
set lab4.firmy; 
if first.nazwa then do; 
    data=input("&datap.",YYMMDD.); 
    zamkniecie=.; 
end; 
keep nazwa data zamkniecie; 
by nazwa; 

您如何与用户(Base SAS或EG)进行交互?如果你在EG,我认为提示管理员可以为你提供一些帮助。

+0

工作就像一个魅力,非常感谢。我不知道我可以使用这样的输入,我一直在symget()上进行隧道展望。谢谢。 – Stranko

+0

你可能会围绕SYMGET调用包装INPUT(),我认为这在功能上没有任何不同。 INPUT就是如何将字符值转换为数字。 – Joe