数据不存在
Data does not exist
我遇到了一个很奇怪的问题。
我分配了一个库名,例如
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 guide 中使用此代码。
我还可以从文件资源管理器导航到该位置并将其拖到企业指南中,然后数据集就可见了。但是即使我双击定义库中的数据集,它也会说该数据集不存在。
我现在 运行 没有想法,我不确定如何解决这个问题。
我有几件事 tried/checked
- 区分大小写不是问题
- 文件名没有空格
- 我有权访问该文件夹,因为我可以正常使用我创建并放置在该文件夹中的另一个数据集
- 事实上,如果我将数据复制到 excel,将 excel 上传到 SAS 以创建 SAS 数据集并将其放在同一位置但名称不同,我会遇到同样的问题!!
非常感谢你们可能有的任何想法,不仅是关于它发生的原因,还有如何绕过它
转自评论并展开
这里有两种可能性:
数据集的文件名可能包含大写字母。这是不太可能但可能发生的情况:
在 Unix 系统上,文件名区分大小写。 SAS 程序中的数据集名称将在内部映射到相应的小写命名数据文件(操作系统级别的 sas7bdat
文件)。如果复制过程以某种方式在 Unix 上创建了一个 .sas7bdat
数据文件,其名称是混合大小写或大写,SAS 会话将不会映射到它。在这种情况下,SAS 文件资源管理器可能会列出一个数据集,但无法打开它。但是,对数据集的直接文件引用可能有效,例如
set '~/project1/datasets/MyWeirdlyCasedDataset';
文件夹安装存在文件权限问题,允许读取目录条目(文件名)但不能读取其中的文件内容(数据集)。尝试打开终端会话(putty 或 mobaxterm)并查看数据文件夹的详细目录列表(ls -l
)您可能还需要查看访问控制列表(lsacl
)并获取网络和 IT 管理员参与。
你确定那是数据集吗?
如下所示将 memtype=data 放入 Proc Datasets
proc 数据集 lib = TEST_LIB memtype=data;
运行;
我遇到了一个很奇怪的问题。
我分配了一个库名,例如
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 guide 中使用此代码。
我还可以从文件资源管理器导航到该位置并将其拖到企业指南中,然后数据集就可见了。但是即使我双击定义库中的数据集,它也会说该数据集不存在。
我现在 运行 没有想法,我不确定如何解决这个问题。
我有几件事 tried/checked
- 区分大小写不是问题
- 文件名没有空格
- 我有权访问该文件夹,因为我可以正常使用我创建并放置在该文件夹中的另一个数据集
- 事实上,如果我将数据复制到 excel,将 excel 上传到 SAS 以创建 SAS 数据集并将其放在同一位置但名称不同,我会遇到同样的问题!!
非常感谢你们可能有的任何想法,不仅是关于它发生的原因,还有如何绕过它
转自评论并展开
这里有两种可能性:
数据集的文件名可能包含大写字母。这是不太可能但可能发生的情况:
在 Unix 系统上,文件名区分大小写。 SAS 程序中的数据集名称将在内部映射到相应的小写命名数据文件(操作系统级别的sas7bdat
文件)。如果复制过程以某种方式在 Unix 上创建了一个.sas7bdat
数据文件,其名称是混合大小写或大写,SAS 会话将不会映射到它。在这种情况下,SAS 文件资源管理器可能会列出一个数据集,但无法打开它。但是,对数据集的直接文件引用可能有效,例如
set '~/project1/datasets/MyWeirdlyCasedDataset';
文件夹安装存在文件权限问题,允许读取目录条目(文件名)但不能读取其中的文件内容(数据集)。尝试打开终端会话(putty 或 mobaxterm)并查看数据文件夹的详细目录列表(
ls -l
)您可能还需要查看访问控制列表(lsacl
)并获取网络和 IT 管理员参与。
你确定那是数据集吗? 如下所示将 memtype=data 放入 Proc Datasets
proc 数据集 lib = TEST_LIB memtype=data; 运行;