year
|
x1
|
x2
|
x3
|
x4
|
x5
|
x6
|
x7
|
x8
|
1990
|
343.76
|
45.44
|
101.37
|
30.9
|
19.02
|
8.42
|
31.38
|
4.34
|
1991
|
349.03
|
49.92
|
99.71
|
34.55
|
21.84
|
10.04
|
35.62
|
5.15
|
1992
|
354.12
|
49.03
|
97.95
|
34.24
|
22.54
|
11.43
|
40.87
|
5.15
|
1993
|
366.95
|
45.44
|
87.7
|
36.68
|
22.31
|
14.3
|
47.94
|
10.73
|
1994
|
398.3
|
46.8
|
94.73
|
36.91
|
21.34
|
15.99
|
49.99
|
12.66
|
1995
|
435.14
|
50.86
|
103.21
|
38.79
|
24.06
|
19.12
|
58
|
13.06
|
1996
|
464.78
|
59.72
|
114.98
|
44.21
|
30.58
|
24.71
|
69.53
|
16.66
|
1997
|
455.95
|
56.03
|
119.45
|
43.74
|
31.98
|
27.61
|
75.89
|
17.55
|
1998
|
439.45
|
50.72
|
123.94
|
42.37
|
35.24
|
31.39
|
82.45
|
17
|
1999
|
435.34
|
48.33
|
122.19
|
43.2
|
36.77
|
36.09
|
88.39
|
18.03
|
2000
|
431.31
|
50.44
|
135.8
|
39.66
|
46.03
|
48.95
|
98.15
|
27.58
|
2001
|
433.25
|
51.47
|
145.54
|
40.15
|
50.39
|
57.36
|
100.47
|
29.43
|
2002
|
444.3
|
54.99
|
157.2
|
42.08
|
54.44
|
67.31
|
110.14
|
30.2
|
2003
|
456.74
|
56.84
|
158.97
|
42.09
|
59.67
|
83.78
|
121.49
|
22.17
|
2004
|
507.5
|
59.1
|
159.47
|
43.88
|
64.21
|
94.74
|
121.79
|
23.74
|
2005
|
559.42
|
71.53
|
178.19
|
53.62
|
117.93
|
142.24
|
80.91
|
26.23
|
现在把用SAS读取它,我们有以下几种途径(还有一些,待学):
1.LIBNAME STATEMENT
libname xlsfile 'c:/book.xls' mixed=no header=yes scantime=yes ;
/*mixed,是否将数值型变量转化为字符型变量*/
/*header,是否将excel中数据第一行设为sas型数据变量名*/
/*scantime,是否遍历查询日期型数据,自动设置日期数据的格式*/
2.PROC SQL PASS-THROUGH FACILITY
proc sql;
connect to excel (path="c:/book.xls");
create table book as
select *
from connection to excel (select * from [sheet1$]);
disconnect from excel;
quit;
3.IMPORT PROCEDURE
PROC IMPORT OUT= WORK.BOOK1
DATAFILE= "C:/Book.xls"
DBMS=EXCEL REPLACE;
RANGE="Sheet1$";
GETNAMES=YES;
MIXED=NO;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
RUN;
4.关于xlsx等格式
现在越来越多的excel文件是xlsx格式的,这种excel文件读取方式类似以上情况。 另外也可以参考
http://support.sas.com/kb/32/455.html
关于同时读取多个excel文件,中文论坛有所讨论:
http://www.mysas.net/forum/viewtopic.php?f=4&t=7525&sid=575275d20d2c880255c2aaa0a0f85fda
在C盘新建了一个名为book.xls的EXCEL文件,文件内容: yearx1x2x3x4x5x6x7x81990343.7645.44101.3730.919.028.4231.384.341991
懂得老铁可以仔细看看,这是个实用的小程序,可以将
excel
中的所有表导入
SAS
。求打赏。
%macro sheetnames(xlsxfile=);
filename _WRKBOOK ZIP "&xlsxfile" member='xl/workbook.xml';
filename _XMLFIL "%sysfunc(
path
name(WORK))\workbook.xml"...
1
读取
SAS
数据集
DATA temp; /*temp 为创建的数据集名称*/
INFILE 'C\my
sas
\data\temp.dat'; /*数据存放的位置 */
INPUT id 1-4 gender 6 height 8-9 weight 11...
电子表格不是数据库。但是,我们中的许多人使用电子表格就好像它们是数据库一样,然后当电子表格布局不支持数据库样式严格的可预测行,列和变量类型时,我们就会挣扎 - 这是分析和报告所需的基本元素。如果您使用
SAS
从Microsoft
Excel
读取
数据,当您需要的数据不是从单元格A1开始时,您可以做什么?
通过设计,
SAS
可以从电子表格中的任何单元格范围
读取
数据。在本文中,我将介绍如何在PROC IM...
SAS
中
import
读取
excel
数据基本模板
/*用
import
语句
读取
excel
中数据*/
libname
sas
lib 'D:\
sas
test'; *创建永久逻辑库;
proc
import
out=
sas
lib.gxh
datafile='D:\熊学堂\Task 2\01 simudata 1.xlsx'
dbms=xlsx replace; *
读取
的路径以及格式 ;
sheet...
转自:http://www.nesug.org/Proceedings/nesug11/cc/cc17.pdf
该文主要应用proc
sql
将字表
文件
名赋予宏变量,然后循环
读取
字表中的变量名。
%macro xlread;
/**Assign a libname for
excel
sheet*/
LIBNAME XLSLIB "C:\NESUG-2011\Metabolite
要在
SAS
中
读取
Excel
数据集,你可以使用PROC
IMPORT
或LIBNAME引擎两种方法。下面分别介绍这两种方法的使用步骤:
1. 使用PROC
IMPORT
方法:
```
sas
proc
import
datafile='
path
_to_your_
excel
_file.xlsx'
out=your_
sas
_dataset
dbms=xlsx replace;
在上面的代码中,将"
path
_to_your_
excel
_file.xlsx"替换为你
Excel
文件
的路径和
文件
名,将"your_
sas
_dataset"替换为你想要创建的
SAS
数据集的名称。
2. 使用LIBNAME引擎方法:
```
sas
libname your_library xlsx '
path
_to_your_
excel
_file.xlsx';
在上面的代码中,将"your_library"替换为你想要创建的
SAS
库的名称,将"
path
_to_your_
excel
_file.xlsx"替换为你
Excel
文件
的路径和
文件
名。
无论使用哪种方法,都需要确保你已经正确安装了
SAS
ACCESS引擎以支持
读取
Excel
文件
。另外,还需要注意是否需要指定sheet表单名称或者范围。
完成后,你就可以通过引用你创建的
SAS
数据集或库来访问
Excel
数据了。