首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在SAS中打开.sas7bdat并导出到excel?

如何在SAS中打开.sas7bdat并导出到excel?
EN

Stack Overflow用户
提问于 2018-05-03 16:12:44
回答 3查看 1.7K关注 0票数 1

我是SAS的新手。我有一个文件扩展名为.sas7bdat的文件,其中包含每日股票价格和百分比变化。它有近200万个行项目。我知道我可以简单地双击该文件,并使用SAS 9.4打开它。但是,我正在寻找代码,我可以在编辑器中键入并打开此文件。请帮帮我。

打开此文件后,需要将其导出到excel。由于它有两百万个数据,我不能在一个excel选项卡中导出所有内容。所以,我想要做的是随机挑选(比如说10,000或20,000)数据,然后只将这些随机挑选的数据导出到excel中。

我的.sas7bdat文件在桌面上。

请帮帮忙。

EN

回答 3

Stack Overflow用户

发布于 2018-05-03 19:21:20

您可以使用surveyselect并在use proc export子集中指定所需的记录数。

在下面的示例中,我创建了一个10行的表,并且只希望在子集中有5行。只需将宏变量中的值从5更改为100000

代码:

代码语言:javascript
运行
复制
data have;
input value;
datalines;
1
2
3
4
5
6
7
8
9
10
;
run;
%let subset=5;
proc surveyselect data=have
   method=srs n=&subset. out=want;
run;

输出:

代码语言:javascript
运行
复制
value=1 
value=2 
value=5 
value=6 
value=10 

正在导出:

代码语言:javascript
运行
复制
proc export data=sashelp.class 
   outfile='c:\myfiles\want.csv'
   dbms=csv
   replace;
run;

您还可以根据要导出的数据进行过滤,下面是一个虚拟示例:

代码语言:javascript
运行
复制
proc export data=want (where=(value > 100 or location='X'))
   outfile='c:\myfiles\want.csv'
   dbms=csv
   replace;
run;
票数 1
EN

Stack Overflow用户

发布于 2018-05-03 19:00:07

您可以使用ODS。这会更简单,但是生成一个在第一次打开时会给出警告的文件

代码语言:javascript
运行
复制
libname rd_data "<Your Path to dataset>"

data temp;
  set rd_data.<dataset name>;
  rnd = ranuni(123456);
run;

proc sort data = temp out = temp(drop=rnd);
  by rnd;
run;
**** Remember this is .xls file, not .xlsx
ods html file = <xls file path - full path>;
proc print data = temp(obs=1000);
run;
ods html close;

或者,您可以使用DDE (动态数据交换)

票数 0
EN

Stack Overflow用户

发布于 2018-05-03 20:38:10

首先,创建一个指向文件系统上数据集所在位置的库。这是一个指向目录的指针(使用C语言)。

代码语言:javascript
运行
复制
libname myData "<path to folder>";

在那里,您可以使用一个随机数和一个数据步骤来获得N个随机值。或者,也可以使用PROC SURVEYSELECT,但您可能没有获得许可。

代码语言:javascript
运行
复制
data temp;
set myData.<Data Set Name>;
__rnd = ranuni(1);
run;

proc sort data=temp ;
by __rnd;
run;

data toOutput;
set temp(obs=10000 drop=__rnd);
run;

最后一个数据步骤只读入您在上面随机化的前10,000条记录。

然后,您可以使用PROC EXPORT导出值。

代码语言:javascript
运行
复制
proc export data=toOutput outfile="c:\temp\output.xlsx" dbms=xlsx replace;
sheet="MyData";
run;

这里最棒的是,您可以在文件中创建其他带有附加导出的工作表。

代码语言:javascript
运行
复制
proc export data=toOutput outfile="c:\temp\output.xlsx" dbms=xlsx replace;
sheet="MyData2";
run;

这将允许您创建多个样本,甚至跨多个工作表导出所有数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50150083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档