在SAS Studio中读取sas7bdat文件



我在互联网上搜索过,但似乎找不到这个。我的问题是,如果我有一个sas7bdat文件,我如何在SAS studio中读取一个sas7bdat文件以便使用它。

我试过:

libname test 'C:UsersnameDownloadstest.sas7bdat'; 

这给了我一个错误,即库测试不存在,如果我尝试以下操作,我知道我需要一个INPUT,除非我能看到文件,否则我不知道这个INPUT。

DATA test; 
INFILE 'C:Userslees162Downloadstest.sas7bdat'; 
RUN; 

我有什么东西不见了吗?

通过LIBNAME语句创建的Libref指向目录,而不是单个文件。
libname test 'C:UsersnameDownloads'; 

INFILE用于读取原始数据文件。要引用现有SAS数据集,请使用SET语句(或MERGEMODIFYUPDATE语句(。

set test.test ;

请注意,您可以跳过定义libref,只在SET语句中使用带引号的物理名称。

DATA test; 
set 'C:Userslees162Downloadstest.sas7bdat'; 
RUN; 

当然,要在路径中使用C:,这是假设您使用SAS/Studio指向在PC上运行的完整SAS。如果您使用SAS University Edition,则它在虚拟机中运行,您需要将SAS数据集放入映射到虚拟机的文件夹中,然后在SAS代码中引用该数据集,并使用虚拟机用于目录

所以类似于:

DATA test; 
set '/folders/myfolders/test.sas7bdat'; 
RUN; 

Libname只是指向位置,一旦完成,就可以在set语句中使用Libname后面的句点和数据集

libname test "C:UsersnameDownloads"; 
DATA test; 
set  test.asl; 
RUN; 

一个可能的原因可能是您使用的是SAS大学版(它不支持可变库地址(。

来自SAS社区的一个问答:

">使用SAS大学版时,您创建的任何库都必须分配到共享文件夹中。您使用以下路径名访问共享文件夹:/folders/myfolders/。总是在目录路径中使用"/",即使在Windows操作环境中也是如此;

设置目录地址后,按照上面Tom在其中一个答案中的指示进行操作。

假设您在位置上有sas数据集。C: \Users\name\Downloads\test.sas7bdat

libname download 'C:UsersnameDownloads'; 
proc sql;
select * from downloads.test;
run;

如果您想查询数据集,可以使用proc-sql像读取表一样读取数据集,但如果您想修改现有数据集,则可以使用@krian提到的数据集。

最新更新