全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7507 7
2011-02-17
有一个excel文件(.xls):

x  y
1  2
3  4

以下这个程序为什么不能工作?
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-2-18 05:14:08
这是xls文件,所以应该用libname.
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-2-18 08:44:54
多谢,但是:
1. 什么时候用filename和input statement呢?是不是基本上都用在raw data文件上?
2. ‘sheet1’n 中那个n是什么意思?b] 2# junuylia
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-2-18 08:58:15
奇怪,每次我run这个code:
复制代码
每次都不成功:
183  libname book2 'c:\book2.xls';
NOTE: 已成功分配逻辑库引用名 BOOK2,如下所示:
       引擎:        EXCEL
       物理名: c:\book2.xls
184
185  data practice;
186
187     set book2.'sheet1'n;
ERROR: 文件 BOOK2.sheet1.DATA 不存在。
188
189  run;

NOTE: SAS 系统由于错误而停止了该步的处理。
WARNING: 数据集 WORK.PRACTICE 可能不完整。该步停止时,共有 0 个观测和 0 个变量。
WARNING: 数据集 WORK.PRACTICE 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.00 秒
这还不是最可怕的,最可怕的是每次run完程序book2(或者任何新创的excel2003file)都不能打开了:
“无法访问 "book2.xls"。该文件可能已经损坏,或者文件所在的服务器没有响应,或者该文件是只读的。”
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-2-18 23:17:30
4# Actree

不好意思,应该是'sheet1$'n

一般filename 和infile是用在读取普通文本文件时使用的。而SAS对excel文件可以特殊处理,使用libname调用xls文件,因此是把xls文件当成一个lib,而把里面的sheet作为dataset。如果你的xls文件里有不同的sheet,取到不同的名字,比如sheet1, sheet2, sheet3,在调用的时候就用book2.'sheet1$'n

在使用完这个命令以后,如果要取消libname绑定,可以加
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-2-18 23:19:10
3# Actree

'sheet1$'n是固定用法,把相应的sheet名替换到sheet1处即可
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群