我在宏中定义一个宏变量.然后,我将它喂入第二个宏.在macro2计数器内部将值更改为200.但是,当我检查宏2变量运行后我放入的宏变量内部时,它仍然显示0.我希望它存储值200?这可能吗?
%macro macro1();
%let variable1= 0;
macro2(counter=&variable1)
%put &variable1;
%mend macro1;
%macro1;
Run Code Online (Sandbox Code Playgroud) 我在只读SAS SPD服务器(bigtable)中有一个非索引的20亿行表.我的工作区(SAS_GRID)中有另外一个1200万行表,其中包含一列唯一ID(idlist).两个表都不断更新.我想基于idlist过滤bigtable,例如:
create table filtered_bigtable as
select t1.* from bigtable t1 inner join idlist t2
on t1.id = t2.id;
Run Code Online (Sandbox Code Playgroud)
快速执行此操作的最佳策略和代码(sql或sas)是什么?
编辑:尝试使用哈希表的罗伯特的建议,查询只运行40分钟(快10倍).感谢所有的答案!
如果不满足某个条件,我需要让 SAS 触发错误我曾尝试使用 abort return n、abort abend 等。语法等
它是一个 SAS 程序,只能在带有提示的交互模式下从 SAS-EG 运行
我的代码:
DATA _NULL_;
IF prxmatch("/^TBDLZL\d{4}_[A-Z]/",&tablename_in) eq 0 then do;
put "error table name &tablename_in does not match";
ABORT RETURN 15;
END;
RUN;
Run Code Online (Sandbox Code Playgroud)
有什么建议 ?
我有一个很大的 CSV 文件,它带有两个元数据描述文件。一个有.sas扩展名,另一个有.sps. 打开它们,它们描述了 CSV 数据格式和类别。这些文件描述了每列的数据格式和可能的类别。例如,值为 1 或 2 的列映射到yes和no。
如何使用这些元数据文件来帮助我阅读 CSV 文件?
我可以使用 read_csv 轻松阅读它,但这些文件对于自动创建具有可能类别的列很有用。我可以为它们创建一个解析器,但必须有一个包或函数来做到这一点。也许我没有使用正确的搜索词。
这是.sas文件(对不起,它是葡萄牙语):
proc format;
Value $SG_AREA
CH='Ci?ncias Humanas'
CN='Ci?ncias da Natureza'
LC='Linguagens e C?digos'
MT='Matem?tica';
Value $TP_LINGUA
0='Ingl?s'
1='Espanhol';
Value $IN_ITEM_ADAPTADO
0='N?o'
1='Sim';
DATA WORK.ITENS_2018;
INFILE 'C:\ITENS_PROVA_2018.csv' /*local do arquivo*/
LRECL=33
FIRSTOBS=2
DLM=';'
MISSOVER
DSD ;
INPUT
CO_POSICAO : BEST2.
SG_AREA : $CHAR2.
CO_ITEM : BEST6.
TX_GABARITO : $CHAR1.
CO_HABILIDADE : BEST2.
TX_COR : $CHAR7. …Run Code Online (Sandbox Code Playgroud) 对不起vauge标题.
我的数据集看起来基本上是这样的:
ID X
18 1
18 1
18 2
18 1
18 2
369 2
369 3
369 3
361 1
Run Code Online (Sandbox Code Playgroud)
我想要的是找到每个ID的最大值x.在此数据集中,ID = 18时为2,ID = 361时为3.
任何反馈将不胜感激.
我想使用SAS ODS RTF输出和PROC REPORT程序创建一个"漂亮的表" .在Google上度过了一整天后,我设法生成以下内容:
数据集
DATA survey;
INPUT id var1 var2 var3 var4 var5 var6 ;
DATALINES;
1 1 35 17 7 2 2
17 1 50 14 5 5 3
33 1 45 6 7 2 7
49 1 24 14 7 5 7
65 2 52 9 4 7 7
81 2 44 11 7 7 7
2 2 34 17 6 5 3
18 2 40 14 7 5 2
34 2 47 …Run Code Online (Sandbox Code Playgroud) 我目前有一个包含200个变量的数据集.从这些变量中,我创建了100个新变量.现在我想删除原来的200个变量.我怎样才能做到这一点?
稍微好一点,我如何在新数据集中删除变量3-200.
对不起,如果我的问题含糊不清,但基本上我发现我需要使用 - .如果我的第一个变量是第一个被调用而我的最后一个变量被称为最后一个,我可以删除所有变量(drop = first - last);
感谢所有的回复.
如何仅使用原始数据集中的最后n个观察值从另一个数据集创建SAS数据集.当你知道n的值时,这很容易.如果我不知道'n'怎么能这样做?
我在初学者SAS课程中,我们只需要显示PROC CONTENTS输出中显示数据集中变量的部分.例如,当你这样做
proc contents data=whas.heart3;
run;
Run Code Online (Sandbox Code Playgroud)
输出是3个表.第3个表的标题是:
变量和属性的字母列表
我需要弄清楚如何修改上面的代码只显示第3个表.
我正在使用Pandas 0.18并read_sas加载sas7bdat数据集.
Pandas数据框中的日期显示为:
Out[56]:
0 19411.0
1 19325.0
2 19325.0
3 19443.0
4 19778.0
Name: sas_date, dtype: float64
Run Code Online (Sandbox Code Playgroud)
pd.to_datetime无法识别此格式.我该怎么办才能正确解析日期?
谢谢!