我面临一个非常奇怪的问题。
我分配了一个库名,例如
libname TEST_LIB "/Info-One/...." /*have removed the exact location*/
/*The dataset TEST_DATA is visible in this output*/
proc datasets lib = TEST_LIB;
RUN;
/*This statement throws an error saying the file does not exist*/
DATA TEST_DATA_2;
set TEST_LIB.TEST_DATA;
RUN;
我正在连接到远程服务器的SAS Enterprise指南中运行此代码。
我还能够从文件资源管理器导航到该位置,并将其拖动到企业指南中,然后该数据集就可见了。但是,即使我双击已定义库中的数据集,它也表示该数据集不存在。
我现在已经没有足够的想法了,我不确定如何解决这个问题。
我尝试过/检查过的几件事
我真的很感谢你们可能有任何想法,不仅是关于它为什么会发生,而且还有如何绕过它的想法
答案 0 :(得分:3)
从评论中转移并扩展
有2种可能性:
数据集的文件名可能包含大写字母。这是不太可能但可能的情况:
在Unix系统上,文件名区分大小写。 SAS程序中的数据集名称将在内部映射到相应的小写命名数据文件(在操作系统级别为sas7bdat
文件)。如果复制过程以某种方式在Unix上创建了名称为大小写混合的.sas7bdat
数据文件,则SAS会话将不会映射到该文件。在这种情况下,SAS文件浏览器可能会列出数据集,但无法打开它。但是,可以直接引用数据集,例如
set '~/project1/datasets/MyWeirdlyCasedDataset';
文件夹安装存在文件许可问题,允许读取目录条目(文件名)但不允许读取其中的文件内容(数据集)。尝试打开终端会话(putty或mobaxterm),然后查看数据文件夹(ls -l
)的详细目录清单是什么。您可能还必须查看访问控制列表(lsacl
)并获取网络和IT管理员参与其中。
答案 1 :(得分:0)
您确定这是一个数据集吗? 如下将memtype = data放入Proc数据集中
proc数据集lib = TEST_LIB memtype = data; 运行;