《SAS编程与数据挖掘商业案例》学习笔记之八

十:file语句

file中的option选项:

Dlm=              指定列表输出文件的分隔符,默认是空格

Dropover      规定当输出数据行长度超过指定值时,忽略超出部分

Flowover    规定当输出数据行长度超过指定值时,超过部分在下一行输出

Dsd   规定一个数据项可以包含分隔符,但是要用引号括住  默认分隔符是逗号

Encoding=  指定输出外部文件所用编码

Filename=   定义一个临时变量,用于接收put语句打开的文件名,默认长度为8

Filevar=    定义一个临时变量,file语句根据其值变化关闭当前输出文件并在下一次file语句执行时打开新的输出文件,长与input语句连用  
Lrecl=  
 输出文件的逻辑记录长度

Mod  把输出行输出到文件中已经存在的行的后面

Old      替换文件原有的内容

eg

filename file 'f:\data_model\book_data\chapt3\utf.txt';

data _null_;

set sashelp.class;

file file encoding='utf-8';

put name weight;

run;

file语句最简单的形式,输出两个变量到新的文件中

eg2

filename files 'f:\data_model\book_data\chapt3\filename.txt';

data a;

length temp $50;

file files filename=temp;

put 'abc';

fname=temp;

run;

输出两个文件,一个是sas数据集a,一个是文件文件filename.txt

其中数据集a中只有fname一个字段,其值为filename对应的文件名

put语句后面的内容为输出文件的内容,所以数据filename.txt中只有abc

 

eg

data b;

length name $200;

input name;

name='f:\data_model\book_data\chapt3\'||strip(_infile_)||'.txt';

file anyname filevar=name ;

date=date();

n=name;

format date yymmdd10.;

do;

put 'test' @;

put ',' @;

put date ;

end;

cards;

test_file1

test_file2

test_file3

;

run;

解读:通过filevar选项的控制同时输出多个外部文件,并把外部文件名输出给sas数据集

蓝色部分为数据集b 的内容,黄色部分中put语句后面的为三个文件输出的内容;

cards读入数据后,自动变量_infile_都会自动获取相应的值,第一条记录读取时,test_file1被传送到_infile_变量中,从而filevar变量的值为f:\data_model\book_data\chapt3\test_file1.txt,然后赋值给n

 

如果仅仅是读取某一目录下所有外部文件名到另一个文本文件下,只需要如下代码。

data _null_;

do i=1 to 3;

length name $200;

name='f:\data_model\book_data\chapt3\'||'test_file'||put(i,1.)||'.txt';

file anyname filevar=name ;

file 'f:\data_model\book_data\chapt3\fname.txt';

put name;

end ;

run;

 

商业实战:

输出定长文本文件

data _null_;

    set sashelp.class(keep=name sex) nobs=obs end=last;

date=date();

    file "f:\data_model\book_data\chapt3\test1.txt"  dropover lrecl=32767 ;

    if _n_=1 then                     

    do;

        put 'header'  @;

        put date @;        format date yymmdd10.;

        put obs z8.;

    end;

    do; 

        put name $ 1-10 @;

        put sex $ 15-16 ;

        ;

    end;

    if last then do;

        put 'end';

    end;

run;

 

集中输出方式:

列方式输出:在put语句后要紧跟列号,对字符型要加$,put name $1-8

 列表方式输出(自由格式):只是在put语句后列出变量名,当然字符型要外加$,put name $ age

格式化方式输出:在put语句后要指明输出格式,输出格式同事指明数据类型和列宽度,最后要加一个句点结尾。

put name  $8. age  4.

 

输出含有逗号不定长文本文件:

libname chapt3 'f:\data_model\book_data\chapt3';

data _null_;

    set chapt3.file_put1;

    file "f:\data_model\book_data\chapt3\test2.txt"  dropover lrecl=32767 dsd dlm=",";

    do; 

        put firstname  @;

        put id  @;

        put phonenumber ;

    end;

run;

 

输出定长且含有逗号的文本文件

data _null_;

    set chapt3.file_put2;

    file "f:\data_model\book_data\chapt3\test2.txt" dropover lrecl=32767 ;

    do; 

        put firstname $10. @;

        put "," @;

        put id $3. @;

        put "

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查看操作系统版本linux_LINUX操作系统常用操作收录(二):查看文件内容命令小结...

先整体了解一下如何查看文件内容的命令vi 兼有修改功能的查看方式,会单独打开整个文件vim 可修改文件内容并且显示当前查看位置在文件中的%多少cat 由第一行开始显示内容,并将所有内容输出tac 从最后一行倒序显示内容,并将所有内容输出more…

crond定时任务详细分析

一、定时任务crond的介绍 crond是linux系统中用来定期执行命令或指定程序任务的一种服务或软件。一般情况下,我们安装文成系统之后,默认变回启动crond任务调度服务,crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作。…

分解字符串

题目 按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000” 代码 #include<iostream> #include<string> #include<ve…

OCS2007R2升级LyncSrv2013 PART4:关联边缘

完成拓扑的合并后&#xff0c;由于边缘服务器尚未做迁移和升级&#xff0c;所以此时我们的Lync Server没有边缘服务、联盟路由等。我们就可以把OCS的边缘服务器与Lync Server前端进行关联&#xff0c;暂时使用OCS的联盟路由和边缘服务。要关联OCS边缘服务器&#xff0c;需要打开…

2021技术文大盘点 | 打包过去,​面向未来

先用四句诗词快速描述 一下我的写作心得1. 只在此山中&#xff0c;云深不知处作为开发人员&#xff0c;常执着于机器0,1代码&#xff0c;非假既真&#xff1b;真实世界是很主观的&#xff0c;需要精致细节&#xff0c;更多时候需要全局把控。带着问题写作&#xff0c;对事物理解…

Ansible 一步一步从入门到精通(一)

一&#xff1a;安装ansiblemac&#xff1a;1. 安装 Homebrew (get the installation command from the Homebrew website).2. 安装Python 2.7.x ( brew install python ).3. 安装 Ansible ( sudo pip install ansible ).linux&#xff1a;如果系统中安装了python-pip和python-d…

客户细分总结

随着营销方式的多变、客户需求各异、营销增长受阻等多方面影响&#xff0c;企业的营销面临前所未有的挑战和机遇&#xff0c;精准化营销似乎已成为很多公司的选择&#xff0c;本文针对以下客户细分五大模块进行总结&#xff1a; 一&#xff1a;客户细分的必要性&#xff1a; 顾…

Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份

http://www.tektea.com/archives/2163.html。 在《Linux操作系统备份之一&#xff1a;使用LVM快照实现Linux操作系统数据的在线备份》文章中&#xff0c;我们介绍了使用LVM快照实现操作性系统在线备份的方法&#xff0c;LVM快照可以实现在线操作系统数据的备份&#xff0c;在线…

cad快捷命令大全_最全CAD快捷键命令大全(图文版、文字版、键盘版)

在 CAD操作中我们常用一些快捷键来代替鼠标操作从而提高绘图效率&#xff0c;以下是小编为大家整理的常用快捷键大全&#xff0c;涵盖图文版、文字版、键盘版。图文版&#xff1a;文字版&#xff1a;一、常用功能键F1: 获取帮助F2:实现作图窗和文本窗口的切换F3:控制是否实现对…

touch 命令

linux的touch命令不常用&#xff0c;一般在使用make的时候可能会用到&#xff0c;用来修改文件时间戳&#xff0c;或者新建一个不存在的文件。 1&#xff0e;命令格式&#xff1a; touch [选项]... 文件... 2&#xff0e;命令参数&#xff1a; -a 或--timeatime或--timeacces…

WEB API:语音识别

2019独角兽企业重金招聘Python工程师标准>>> x-webkit-speech 语音输入功能&#xff1a; http://www.iinterest.net/2012/01/07/x-webkit-speech/ HTML5语音输入&#xff08;淘宝语音搜索&#xff09;x-webkit-speech方法 支持webkit内核&#xff1a; http://www.wu…

cad在线转换_CAD转PDF批量转换怎么转?教你一次性操作,一看就会

接触AutoCAD设计&#xff0c;自然离不开各种的格式转换&#xff0c;CAD转PDF&#xff0c;CAD转JPG、CAD版本转换……感觉不知道哪里下手。特别是批量进行转换操作&#xff0c;更是没有头绪&#xff0c;其实很简单&#xff0c;这里教你一招轻松转换&#xff0c;看一遍变就会操作…

怎么写一个高性能应用?

首先声明&#xff0c;这不是写一个高性能应用的唯一选择&#xff0c;只是自己实践后的一些心得分享。开发前定个小目标有目标的好处是不会降配开发&#xff0c;也不会过度开发目标指标&#xff1a;并发数&#xff0c;TPS&#xff0c;响应时间等1、模块独立性让路高性能&#xf…

数据挖掘的十种分析方法

1.记忆基础推理法&#xff08;Memory-Based Reasoning&#xff1b;MBR&#xff09; 记忆基础推理法最主要的概念是用已知的案例&#xff08;case&#xff09;来预测未来案例的一些属性&#xff08;attribute&#xff09;&#xff0c;通常找寻最相似的案例来做比较。 记忆基础推…

[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.

为了更好的排版, 所以将IK分词器的安装重启了一篇博文, 大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://www.cnblogs.com/wang-meng/p/5814798.html8, 打开浏览器查看solr可视化界面到了这里solr就配置好了, 可是我们的IK …

简单密码破解

描述: 密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。 假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字…

dsBlog_杂类

C,MFC的综合类的博客. 1. http://www.cnblogs.com/mfryf/category/354043.html 转载于:https://www.cnblogs.com/tt-player/p/3899137.html

百度pcs 如何获取Access Token

为什么80%的码农都做不了架构师&#xff1f;>>> 看官方两篇文章&#xff1a; 《获取Access Token》 http://developer.baidu.com/wiki/index.php?titledocs/pcs/guide/token_authorize 《使用Refresh Token获取Access Token》 http://developer.baidu.com/wik…