问题:使用PROC IMPORT时,如何定义从.xlsx文件导入的变量的变量类型?
我的工作
我正在使用SAS v9.4。据我所知,它是香草SAS。我没有SAS / ACCESS等。
我的数据如下所示:
ID1 ID2 MONTH YEAR QTR VAR1 VAR2
ABC_1234 1 1 2010 1 869 3988
ABC_1235 12 2 2010 1 639 3144
ABC_1236 13 3 2010 2 698 3714
ABC_1237 45 4 2010 2 630 3213
Run Code Online (Sandbox Code Playgroud)
我正在运行的过程是:
proc import out=rawdata
datafile = "c:\rawdata.xlsx"
dbms = xlsx replace;
format ID1 $9. ;
format ID2 $3. ;
format MONTH best2. ;
format YEAR best4. ;
format QTR best1. ;
format VAR1 best3. ;
format …Run Code Online (Sandbox Code Playgroud) 来自样本35591,
仅当在%MACRO语句中设置MINOPERATOR选项或作为SAS®系统选项时,IN运算符才能在%IF语句中使用.
需要一个单独的宏处理选项似乎是一个不必要的复杂问题.当然,由于宏处理的性质,宏IN语法及其可处理的内容必须与DATA步IN不同.但是实现强制程序员跟踪两个不同的IN,尽管它们在逻辑上是相同的.
MINOPERATOR的文件.
这似乎是一个简单的问题,但对于没有合作IT部门的人来说,事实并非如此.
当SAS启动时,会给出一个简短的组件列表.例如,当我开始我的时候,我得到:
NOTE: Updated analytical products:
SAS/STAT 13.1
SAS/ETS 13.1
SAS/OR 13.1
SAS/IML 13.1
SAS/QC 13.1
Run Code Online (Sandbox Code Playgroud)
但是,这份清单并非详尽无遗.如" 如何查找SAS版本和组件"列表所述,存在列出组件的未记录过程.
特别是,
proc setinit;
run;
Run Code Online (Sandbox Code Playgroud)
和
proc product_status;
run;
Run Code Online (Sandbox Code Playgroud)
虽然这两个似乎都列出了已安装的组件,但至少对我来说,输出不是双向的.setinit列出的输出组件远远多于组件product_status.
因此,除了查看SAS的收据外,SAS用户如何明确知道她可以访问哪些组件?
PS:我尝试了左下 - 左 - 右 - 下 - 右 - 左 - 左 - 右 - 右,但它没有用.
如何定义一个宏变量,其中包含对尚未定义的其他宏变量的引用而不生成警告?
考虑一个为不同变量生成类似图的程序.根据变量,每个数字的标签将会改变.由于除了特定的分析变量之外,所有数字都具有相似的标签,因此将标签放在程序的顶部以便于修改是有意义的.问题是,在程序中的那一点,尚未定义变量名.
例如:
/*Top of program*/
%let label = This &thing gets defined later.;
/* ... */
/*Later in program*/
%let thing = macro variable;
%put &=label;
Run Code Online (Sandbox Code Playgroud)
这会产生所需的输出:
LABEL=This macro variable gets defined later.
Run Code Online (Sandbox Code Playgroud)
但它也会在日志中生成警告:
WARNING: Apparent symbolic reference THING not resolved.
Run Code Online (Sandbox Code Playgroud)
如果我把一个%nrstr身边&thing,那么的形式label是正确的(即.LABEL=This &thing gets defined later.)但是,&thing它已被定义后,不再解析.
/*Top of program*/
%let label = This %nrstr(&thing) gets defined later.;
%put &=label;
/* ... */
/*Later in program*/
%let thing = macro …Run Code Online (Sandbox Code Playgroud) 在尝试使我的代码更具可读性时,我面临以下情况.
考虑一个数据步骤,您只想在其中选择具有值的观测值variable.使用WHERE语句似乎有两种方法:单独表达变量或使用MISSING函数.
例如,
案例1. VARIABLE
data where_var;
set sashelp.electric;
where AllPower;
run;
Run Code Online (Sandbox Code Playgroud)
案例2.不丢失的地方(VARIABLE)
data where_not_missing;
set sashelp.electric;
where not missing(AllPower);
run;
Run Code Online (Sandbox Code Playgroud)
这些产生了相同的结果.但是,我不确定是否一定如此.
命令提示有时开关之间=>和->使用交互式终端时psql.我不清楚这表明了什么.
例如,
$ psql postgres
psql (9.5.10)
Type "help" for help.
postgres=> /h
postgres->
Run Code Online (Sandbox Code Playgroud) 我正在阅读使用 Python 和 Qt 进行快速 GUI 编程。它于 2008 年发布,在 PyQt4.5 引入 API 更改之前。
是什么SIGNAL()以及它是如何从不同PySideSignal()与PyQt的的pyqtSignal()班?
我找不到任何旧文档。但是,我看到了许多用于将信号连接到插槽的旧式语法:
self.connect(self, SIGNAL('valueChanged(int)'), my_slot)
Run Code Online (Sandbox Code Playgroud)
我不清楚它SIGNAL是函数、类方法还是类,是否用于定义新信号,以及是否仍受支持。那里有很多旧代码,我不确定如何解释。
我想使用vanilla Vim在选择的文本中交换点和标记.
考虑一个代码块,在块之前有一些注释.假设我只想在代码块上运行.我可以选择段落vip.但是,这样做会将光标放在段落的底部.如果我能够在选择开始的地方交换光标所在的位置,那么我可以向下移动.