考虑以下sas代码片段:%macrotemp(querystr=);filenamerequesttemp;data_null_;filerequest;put"&querystr";run;%mendtemp;%temp(querystr="term1"and"term2");请注意,这段代码不会编译,因为当编译器在数据步骤中替换querystr时,querystr中的第一个引号将关闭put语句的起始引号。我想屏蔽查询字符串中的引号以将其转换为有效的xml片段,例如:"term1"and"term2"有没有办法通过适当屏蔽引号将上述行输出到文件
在SAS中读取XML数据时需要控制数据类型。使用SAS中的XML库名称引擎写入和访问XML数据。SAS似乎是根据列的内容来猜测数据类型:如果我将“20081002”写入字符列中的XML数据,它将作为数值变量读回。一个例子:filenamemy_xml'/tmp/my.xml';*Yes,IuseSASonUnix*;libnamemy_xmlXML;datamy_xml.data_type_test;text_char="Thisisobviouslytext";date_char="20081002";num_char="42";genuine_num=42;run;proccopy
我有XML格式的电子邮件数据,我正试图将其加载到多个SAS表中。XML的结构不是扁平的,在层次结构中有多个级别。从这个XML文件,我想创建几个SAS表(例如,发件人、收件人、附件、电子邮件正文和元数据...)。显然,对于一封电子邮件,将有一个发件人、一封电子邮件,但有任意数量的收件人和附件。为此,我目前正在使用XML映射文件将数据转换为我需要的表格。我遇到的问题是,通过将xmlv2引擎与MAP文件一起使用,似乎SAS会为我要创建的每个表读取一次XML文件。这会产生一个问题,因为它不能很好地扩展!例如,如果我有200GB的XML文件并且想要创建10个表,我将读取2TB的数据来执行此操作。
我必须从SAS数据集生成一个XML文件。XML文件的格式定义非常严格,我需要准确匹配。我正在使用SAS9.4(注意:并坚持使用它!)并利用XMLMAP和libnamexmlv2。我觉得我非常接近解决方案,但还有最后一个障碍我似乎无法通过!XML文件有一个3级结构,一个2级元素包含所有3级元素。无论我尝试什么,我所有的3级元素似乎都生成了它们自己的2级元素。似乎SASxmlv2libname引擎在导入或导出完全相同的数据时甚至工作方式不同!下面重现的示例和步骤-如果可以,请帮助我!示例数据数据是文件列表和与这些文件相关的一些属性。这些属性对所有文件都是通用的,只有列表中的文件名不同。这将
我正在尝试通过PROCSOAP使用SAS(9.3)更新Sharepoint(2007)列表(SAS位于UnixGRID上)。Sharepoint站点启用了基本身份验证(因为PROCSOAP无法通过NTLM进行身份验证)。我可以使用XMLLibname引擎成功地从Sharepoint列表中提取数据,但我无法通过PROCSOAPXML数据将数据发回Sharepoint列表Web服务。具体来说,我正在尝试通过http://[intranet_site]/sites/IT/_vti_bin/Lists.asmx添加和更新共享点列表中的项目SAS日志输出:18399%letRESPONSE=RE
目前,当您在Windows中双击SAS文件时,它将在您已经打开的现有SASsession中打开它。有没有办法让它在窗口中单击时启动一个新的SAS窗口? 最佳答案 据我所知,SAS是所谓的“单实例”应用程序,因此它的默认行为是在现有session中打开它。事实上,您可能会注意到它会在您打开的第一个session中打开。 关于windows-在新窗口中打开SAS程序,我们在StackOverflow上找到一个类似的问题: https://stackoverflow
我在Windows7上使用BaseSAS9.4。出于各种原因(下面将详细介绍),我的某些程序名称非常长。进一步加剧了这一点,程序存储在网络驱动器的深处。尝试从Windows资源管理器打开时,这会导致问题。我相信问题出在SAS上,但已经用Windows标记了问题,以防万一。我希望有某种方法可以通过配置文件或对注册表进行编辑来解决此问题。要打开程序,我通常双击Windows资源管理器中的.sas文件。在短暂的等待期(其中SAS消息框指出)后,这将打开增强型编辑器:TheSASSystemisprocessingrequests.Pleasewait...当程序的全名(包括路径和扩展名)超过
我正在寻找一些(有效的)代码来确定WindowsXP中使用SAS9.1.3的目录/文件夹的大小。 最佳答案 如果您不受SASNOXCMD选项的限制(例如SASEnterpriseGuide在其默认配置中命中SASApp-工作区服务器,而管理员尚未打开它)那么我建议下载并使用MicrosoftSysinternalsDiskUsage(DU)工具使用管道文件名通过SAS数据空步骤。下面是一些示例SAS代码:filenamedupipe"du-qc:\SAS\EBIEDIEG\Lev1\SASApp";datawork.diskusag
是否可以从服务器以编程方式切断用户与SAS服务器的连接?我知道当我与服务器建立远程桌面连接时,我可以使用任务管理器等标准Windows工具终止单个SAS进程,但这是否可以通过编程方式完成,此外,我们是否可以阻止任何用户连接?情况如下:我们在WindowsServer2008R2服务器上安装了SAS9.4。服务器上有一堆文件夹,里面有SAS表,还有一群最终用户通过SASEnterpriseGuide(已安装在他们的桌面上)使用这些SAS表。现在,还有一个大型SAS批处理运行,我们每天运行它来更新所有SAS表。我们想确保在批处理运行时没有用户通过EG打开任何SAS表;否则它可能会因为表被锁
假设数据集有三列DateRegionPrice01-03A101-03A201-03B301-03B401-03A501-04B401-04B601-04B7我尝试通过以下代码按日期和区域获取潜在客户价格。datawant;sethave;by_ricdate_l_;dountil(eof);sethave(firstobs=2keep=pricerename=(price=lagprice))end=eof;end;iflast.date_l_thencallmissing(lagprice);run;但是,想要只有一个观察。然后我创建new_date=date并尝试另一个代码:datawa