WPS SAS克隆与SAS Institute的相应产品兼容性如何?有没有人尝试过 - 如果有的话:你遇到任何兼容性问题吗?
我有以下数据集
PatientName BVAID Rank TreatmentCode TreatmentID DoseID
Tim Stuart BVA-027 3 OP_TBC 1 1
Tim Stuart BVA-041 4 OP_TBC 1 1
Tim Stuart BVA-021 7 OP_TBC 1 1
Tim Stuart BVA-048 10 OP_TBC 1 1
Tim Stuart BVA-020 14 OP_TBC 1 1
Tim Stuart BVA-024 15 OP_TBC 1 1
Tim Stuart BVA-001 16 OP_TBC 1 1
Tim Stuart BVA-013 27 OP_TBC 1 1
Tim Stuart BVA-018 28 OP_TBC 1 1
Tim Stuart BVA-051 29 OP_TBC 1 1
Tim Stuart BVA-027 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在SAS中连接多个数据集,我正在寻找一种方法来存储最终堆叠数据集中各个数据集名称的信息.
例如.初始数据集是"my_data_1","abc"和"xyz",每个都有列'var_1'和'var_2'.
我希望最终得到"final"数据集,其中列为'var_1','var_2'和'var_3'.其中'var_3'包含值"my_data_1","abc"或"xyz",具体取决于特定行来自哪个数据集.
(我有一个很好的解决方案,即在所有单个数据集中添加表名作为额外变量.但我有大约100个表堆叠,我正在寻找一种有效的方法来实现这一点.)
在增强编辑器中,着色可能会给你一个提示.但是,在大型机上我不相信编辑器中有任何可以帮助你的东西.
我用
OPTIONS OBS=0 noreplace;
Run Code Online (Sandbox Code Playgroud)
obs = 0选项指定从输入数据集读入0个观察值,NOREPLACE告诉SAS不要用现有的SAS数据集覆盖同名的数据集.如果要创建新的datastet,将使用所有属性创建它,但观察次数为0.(如果需要,请务必将选项重置为选项Obs = max replace;当找不到更多语法错误时).
我会对任何其他技术感兴趣.谢谢
有关选项的说明来自这里.
我很好奇SAS使用内存,排序,以及为什么它看起来效率低下.
我有一个带有8GB内存的四核xeon.我有一个3GB的数据集.为什么在标准过程排序期间的任何给定时间内仅使用120MB的内存和15-20%的CPU利用率?这似乎是程序非常低效的事情.
在我看来,由于我有可用内存,它将加载整个数据集,然后继续删除所有可用的CPU周期.但只有15%?这是对可用资源的极大浪费,让我感到困扰.看起来它经常在磁盘上来回走动,这很慢.
是否有一些神奇的设置说"SAS,你可以利用一切更快"我错过了?
64位操作系统运行64位SAS,顺便说一句.
我想知道是否有一种方法可以在没有排序的情况下对记录进行不重复处理?有时候,我希望保留原始顺序并且只想删除重复的记录.
可能吗?
顺便说一句,以下是我所知道的关于不重复记录的内容,它最终会进行排序.
1.
proc sql;
create table yourdata_nodupe as
select distinct *
From abc;
quit;
Run Code Online (Sandbox Code Playgroud)
2.
proc sort data=YOURDATA nodupkey;
by var1 var2 var3 var4 var5;
run;
Run Code Online (Sandbox Code Playgroud) 我正在使用R中的glm将SAS PROC GENMOD示例转换为R. SAS代码是:
proc genmod data=data0 namelen=30;
model boxcoxy=boxcoxxy ~ AGEGRP4 + AGEGRP5 + AGEGRP6 + AGEGRP7 + AGEGRP8 + RACE1 + RACE3 + WEEKEND +
SEQ/dist=normal;
FREQ REPLICATE_VAR;
run;
Run Code Online (Sandbox Code Playgroud)
我的R代码是:
parmsg2 <- glm(boxcoxxy ~ AGEGRP4 + AGEGRP5 + AGEGRP6 + AGEGRP7 + AGEGRP8 + RACE1 + RACE3 + WEEKEND +
SEQ , data=data0, family=gaussian, weights = REPLICATE_VAR)
Run Code Online (Sandbox Code Playgroud)
当我使用时,summary(parmsg2)我获得与SAS相同的系数估计值,但我的标准误差却大不相同.
SAS的摘要输出是:
Name df Estimate StdErr LowerWaldCL UpperWaldCL ChiSq ProbChiSq
Intercept 1 6.5007436 .00078884 6.4991975 6.5022897 67911982 0
agegrp4 …Run Code Online (Sandbox Code Playgroud) 我有一个表有两个数字值,称为year和month.我想创建一个具有一个值称为新表ym,而这正串联year和month.这是一个例子:
proc sql;
create table test as
select CONCAT(year, month) as ym from tbl;
run;
Run Code Online (Sandbox Code Playgroud)
CONCAT那里的功能是什么?
快问
是否有一个单行(或相当简短)的方法来取消进一步的SAS语句的执行与窗口环境.
这些是我所知道的方法,但它们令人厌倦,特别是在大量的评论中.我尝试了ABORT和STOP语句,但他们关闭了窗口环境但我想要的只是在某一点停止执行并继续我的快乐方式.
谢谢
我有多个大型(> 10GB)SAS数据集,我想转换它们用于pandas,最好是HDF5.有许多不同的数据类型(日期,数字,文本),一些数字字段也有不同的错误代码用于缺失值(即值可以是.,.E,.C等)我希望保留列名和标签元数据.有没有人找到一种有效的方法来做到这一点?
我尝试使用MySQL作为两者之间的桥梁,但我在传输时遇到了一些超出范围的错误,而且速度非常慢.我也试过以Stata .dta格式从SAS导出,但SAS(9.3)以旧的Stata格式导出,与pandas中的read_stat()不兼容.我也尝试了sas7bdat包,但是从描述中它还没有被广泛测试,所以我想以另一种方式加载数据集并比较结果以确保一切正常.
额外的细节:我想要转换的数据集是来自WRDS的CRSP,Compustat,IBES和TFN的数据集.