Tag: sas

在导入时将variables设置为FileName

我正在使用下面的代码一次从文件夹中导入多个.XLSX文件。 它工作的很好,除非我不能区分每个文件一旦被导入和合并。 每个Excel文件都是特定年份的数据,我需要知道分析的年份。 有没有什么办法可以在每次导入时创build一个与文件名相同的variables,这样我就可以在合并后区分这些文件? 我已经完成了很长的一步,通过单独导入每个文件并在合并之前在每个数据集中创build一个variables,但是我正在寻找更快的方法来完成此操作。 filename indata pipe 'dir X:\"Projects"\"Source Data" /b '; /* put all the .xlsx file names in dataset file_list */ data file_list; length fname $200 in_name out_name $200; infile indata truncover; input fname $ 200.; in_name=translate(scan(fname,1,'.'),'_','-'); out_name=cats('_',in_name); run; data _null_; set file_list end=last; call symputx(cats('dsn',_n_),in_name); call symputx(cats('outdsn',_n_),out_name); if last then call […]

SAS:在DDE链接中涉及的fileref是什么?

有人可以请解释一下什么样的声明 filename fileref dde 'excel|system'; 在SAS中做? 据微软称 ,dynamic数据交换(DDE) 在共享数据的应用程序之间发送消息并使用共享内存在应用程序之间交换数据 这使得DDE听起来像某种I / Ostream。 然而, SAS内的DDE语法需要FILENAME语句中的fileref ,其中a fileref是一个有效的fileref(如引用外部文件中所述)。 引用外部文件然后继续定义一个fileref为 fileref是一个与外部文件关联的逻辑名称。 什么外部文件? 我天真的理解是,它打开Excel和SAS之间的某种沟通渠道,因此我想称之为stream。 这就意味着必须在 Excel打开后声明上述语句。

我可以在VMWare下的PC上从SAS大学将matrix导出到Excel中

我希望在我的个人电脑上写一个p行和c列的“大”matrix,例如3000行和20列。 但这并不容易,而且我想知道是否可以通过使用固定的行数和列数来简化它,而不是: array mat {&periods,&columns}; 现在,我正在使用名为“SAS大学版”的SAS免费版本,它只有社区的帮助。 我想输出到Excel,但使用PC上的VMWARE来运行SAS Studio,你不能直接写入磁盘(虽然有一个我的文件夹)。 我试过这个,但得到这个错误日志: proc export data=WORK.CPAPMONTE1 file= "/folders/myfolders/outfile1.xlsx" DBMS=xlsx ; run; 错误:无法创buildXLSX文件 – > /folders/myfolders//outfile1.xlsx。 确保path名称正确,并且您有写入权限。 错误:输出文件的variables太多 我认为第二个错误只是由于第一个错误,它有一个//而不是一个/ 我在SAS大学版中为我的数据定义了一个特殊文件夹:/ folders / myfolders / CPAP1 但我还没有想出如何指向那​​里

dynamic更改SAS ODS中的工作表名称

有没有办法使用macrosdynamic更改SAS ODS中的图表名称? 在macros里面,我有下面的代码: %DO N = 1 %TO &SQLOBS; ODS TAGSETS.ExcelXP OPTIONS(SHEET_NAME = &&TABLEVAR&N EMBEDDED_TITLES = 'NO' EMBEDDED_FOOTNOTES = 'NO' PRINT_HEADER = 'CURRENT &&TABLEVAR&N AS OF &D'; PROC PRINT DATA = WORK.&&TABLEVAR&N NOOBS; RUN; %END; 基本上循环遍历一个表格数组,每个表格输出一个单独的Excel工作表。 通过调用一个macrosvariables&TABLEVAR,它应该dynamic地改变每个表的表名。 但是,我得到以下错误: 错误22-322:期待一个引用的string。 所以SAS确实parsing了macrosvariables,我可以看到表名在日志中是正确的,但是问题是它们不是引用的string。 所以我尝试了这样的引号: 选项(SHEET_NAME ='&& TABLEVAR&N' 但是,macrosvariables没有被SAS解决,所有的表都被命名为&& TABLEVAR&1,2等。 有没有解决的办法? (而且每张表是不同名称的单独表,所以我不能使用BY组。)如果不能与ODS交互,那么macros有什么好处呢?

如何在Excel中键入SAS提示值以运行存储过程?

我对VBA的经验非常有限。 以下VBA代码运行SAS存储过程,并将结果放入Excel电子表格中。 存储的进程提示“EUID”被设置为返回值5555.如何修改代码,以便提示的值从电子表格中的单元格(例如单元格B1)中提取,而不是在代码中定义? 我希望最终用户能够在单元格中inputEUID值,按下button运行macros,然后返回数据集。 感谢您的帮助。 Sub InsertStoredProcessWithPrompts() Dim sas As SASExcelAddIn Set sas = Application.COMAddIns.Item("SAS.ExcelAddIn").Object Dim prompts As SASPrompts Set prompts = New SASPrompts prompts.Add "EUID", "5555" Dim a1 As Range Set a1 = Sheet5.Range("A1") sas.InsertStoredProcess "/User Folders/Stored Process 1", c1, prompts End Sub

SAS ODS tagsets.excelxp:在SAS中调用vbscript的autofit列宽

每周我输出一个yyyymmdd_report.xls工作簿,它由多个工作表组成,其中包含我的macrosdate。 如果我手动打开此工作簿,以下vbs脚本可以正常工作以自动调整列: Sub AutoFitAll() Application.ScreenUpdating = False Dim wkSt As String Dim wkBk As Worksheet wkSt = ActiveSheet.Name For Each wkBk In ActiveWorkbook.Worksheets On Error Resume Next wkBk.Activate Cells.EntireColumn.AutoFit Next wkBk Sheets(wkSt).Select Application.ScreenUpdating = True End Sub 有没有什么办法可以把它放到SAS内的某种调用中,而不必手动执行? 我在网上find的文档似乎有点太复杂,我的需求。 逻辑是: 1. Point to/open output report .xls file (maybe some command/DDE method?) 2. Run vbs script […]

ODS Excel与ODS Tagsets.excelxp选项SAS

我想使用新的ODS EXCEL而不是ODS Tagsets.Excelxp,因为我需要.XLSX文件。 一切工作正常,但我遇到了字体的麻烦:我使用的代码是: ods Excel file="c/Profitability_ttm.xlsx" style= sasdocprinter options(Sheet_Name="<1% >12%" Orientation= "landscape" embedded_titles='on'); title1 font=Arial h=10pt j=left Bold "Commercial Real Estate LOB"; 我得到字体大小= 10,左alignment和粗体,但我得到的字体是Helvetica。 当我使用ODS Tagsets.excelxp时,相同的代码会生成Arial字体。 在我的代码中有什么我缺less? 任何帮助将非常感激。

如何在SAS中dynamic导入excel文件?

我是一个新的SAS用户,我有一个关于将Excel文件导入SAS的问题。 我在我的共享驱动器中有一个excel文件,这个文件在我的电脑上有不同的映射。 (path在一台PC上标记为S驱动器,在另一台PC上标记为Y驱动器的path相同)。 每当我改变我的电脑并运行我的SAS程序时,通常无法导入它,因为我没有重新映射excel文件。 有没有办法从这个文件夹中导入一个excel文件,而不必每次移动PC都重映射到excel文件的path? 感谢您的帮助。

如何根据SAS / SQL中的行值进行条件计数?

重新上传,因为我上一篇文章有​​一些问题,我不知道我们应该发布样本数据。 我对SAS相当陌生,而且我有一个问题,我知道如何在Excel中解决问题,而不是SAS。 但是,数据集太大,无法在Excel中合理使用。 我有四个variables:id,year_start,groupname,test_score。 样本数据: id year_start group_name test_score 1 19931231 Red 90 1 19941230 Red 89 1 19951231 Red 91 1 19961231 Red 92 2 19930630 Red 85 2 19940629 Red 87 2 19950630 Red 95 3 19950931 Blue 90 3 19960931 Blue 90 4 19930331 Red 95 4 19940331 Red 97 4 19950330 […]

在多个数据集中批量格式化date

我已经提取了一些使用PROC导入的Excel电子表格。 但是我现在需要将数据集合在一起,并且需要所有数据集的统一date格式。 他们目前是字符格式,有些是“1999Q1”date,有些是“12/02/2013”​​date。 任何帮助,我可以如何在所有数据集中更改所有date的格式?