我在这个论坛上发现了几个关于SAS日期的问题,但是我找不到这个问题的答案.我认为这很简单,但我无法做到.
我有一个日期(DD-MM-YYYY)的数据集,由于某种原因,它有一个字符格式.我希望它被翻译成日期格式(YYYY-MM-DD).通过分离和连接各个部分,我可以让它"正确"看,但是,我无法使格式正确.
我有一个宏创建一个时间戳(附加到输出文件名).但是,我宁愿将宏变量分配给宏的结果(如果它不够圆),而不是必须记住宏赋值的宏变量.
%let tms= %tms();
Run Code Online (Sandbox Code Playgroud)
这是当前的宏....
%macro tms ;
%* Create a Timestamp ;
%let tms_date= %sysfunc(date(),yymmdd10.) ; %* Todays date ;
%let tms_time= %sysfunc(time(),time.) ; %* Current Time ;
%* Format mmddyyhhmmss ;
%let tms=_%scan(&tms_date,1)%scan(&tms_date,2)%scan(&tms_date,3)%scan(&tms_time,1,:)%scan(&tms_time,2,:)%scan(&tms_time,3,:) ;
%mend ;
Run Code Online (Sandbox Code Playgroud)
你怎么引用它来使它工作?另外,我只是从宏中删除"%let tms ="吗?
此外,以下ODS转让声明的引用是否相同?
ods Tagsets.excelxp file="&outname.&tms..xml" style= Styles.XLsansPrinter ;
Run Code Online (Sandbox Code Playgroud)
感谢您抽出宝贵的时间....
感谢您阅读本文.
我原本以为它就像在select .val()上使用.split函数一样简单,但是我得到了一个js错误.这是我正在使用的代码.我将使用.each()循环选择的项目...但是想了解我做错了什么...
如果我用文字设置opts ..分割工作(注释代码)
谢谢
<html><head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/JavaScript">
$(function(){
$("#multOpts").bind("click", function() {
// var opts = "OPT1,OPT2,OPT3" ;
var opts = $("#select1").val() ;
$("#text1").val(opts);
});
$("#oneOpt").bind("click", function() {
// var opts = "OPT1,OPT2,OPT3" ;
var opts = $("#select1").val() ;
var optsArray = opts.split(",") ;
$("#text2").val("1st opt: " + optsArray[0]);
});
}); // End eventlistener
</script>
</head><body>
<select id="select1" multiple size="5">
<option value="OPT1">Option 1</option>
<option value="OPT2">Option 2</option>
<option value="OPT3">Option 3</option>
<option value="OPT4">Option 4</option>
<option value="OPT5">Option 5</option>
</select> …Run Code Online (Sandbox Code Playgroud) 在SAS中,在数据步骤之外,用空白替换宏变量中的字符的最佳方法是什么?
这似乎TRANSLATE是一个很好的功能.但是,使用%SYSFUNC此功能时,参数不会被引号括起来.你怎么指出一个空白应该用作替代?
我试图将一个较小的表中的记录添加到一个非常大的表中,如果较小的表中的行的主键值不在较大的表中:
data test;
Length B C $4;
infile datalines delimiter=',';
input a b $ c $;
datalines;
1000,Test,File
2000,Test,File
3000,Test,File
;
data test2;
Length B C $4;
infile datalines delimiter=',';
input a b $ c $;
datalines;
1000,Test,File
4000,Test,File
;
proc sql;
insert into test
select * from test2
where a not in (select a from test2);
quit;
Run Code Online (Sandbox Code Playgroud)
然而,这不会将记录插入表中Test.谁能告诉我我做错了什么?最终结果应该是应该将a = 4000的行添加到表中Test.
编辑:
使用where a not in (select a from test)是我最初尝试的,它产生了以下错误:
WARNING: This DELETE/INSERT statement …Run Code Online (Sandbox Code Playgroud)