人大经济论坛SAS版的几个问题
1、利用proc format对坐标轴刻度微调
goptions reset=all;
proc format;
value vfmt 0,4,8,12,13 =[2.] other='';
run;
axis1 minor=(number=1) label=none order=( 0 to 13 by 1 );
data one;
input y x;
cards;
2 0
3 7
4 9
2 13
6 8
5 2
;
run;
proc gplot data=one;
plot y*x/haxis=axis1;
format x vfmt.;
run;quit;
2、SAS中导出标签到excel
/*Mike Zdeb 的方法*/
ods results off;
ods listing close;
ods csv file='c:\air.csv';
proc print data=sashelp.air label noobs;
run;
ods csv close;
ods results on;
ods listing;
/*dload也可以*/
proc dbload data=sashelp.air dbms=xls;
path="c:\temp";
putnames yes;
limit=0;
label;
reset all;
load;
run;
3、把SAS数据集按某个字段分组导出到excel
data a;
input x y $;
cards;
1 j
1 k
2 l
2 j
3 p
4 u
3 r
;
/* macro */
%macro splitfile;
%do i=1 %to 4;
data part;
set a;
if x eq &i.;
run;
PROC EXPORT DATA= WORK.part
OUTFILE= "c:\test&i..xls"
DBMS=EXCEL REPLACE;
RUN;
%end;
%mend splitfile;
%splitfile
/* ods */
proc sort data=a out=b;
by x;run;
ods tagsets.excelXP file="c:\new.xls";
proc print data=b;
by x;
run;
ods tagsets.excelXP close;
4、在一个表中删除出现在另一表中的记录,有没有表示整条记录的语句
*模拟lz的数据要求,从class随机抽取5个数组成class1*/
data class;
set sashelp.class;
run;
proc surveyselect data=class
method=srs n=5
seed=34234 out=class1;
run;
/*删除存在class1中数据后的class数据保存至last*/
proc sql;
create table last as
select *
from class
except all
select *
from class1;
quit;
/*data步*/
data need;
merge class class1(rename=(name=name1));
if name1=' ' then output;
drop name1;
run;
5、如何计算某个值连续出现的次数,例如找出obs连续取值为1最长的值
/* hopewell的代码 */
data _null_;
input obs x1-x9;
array arr x1-x9;
do over arr;
if arr then do;
temp+arr;
max=max(max,temp);
end;
else temp=0;
end;
put obs= max=;
datalines;
1 0 0 0 0 0 1 1 0 1
2 0 1 1 1 0 0 1 1 0
;
6、数据集相减(相当于减去数据集的部分数据)
data a;
input x y;
cards;
1 2
3 4
5 6
7 8
9 0
;
data b;
input x y;
cards;
1 2
3 4
7 8
;
run;
proc sql;
create table need as
select a.*
from a as a
left join
b as b
on a.x=b.x
where missing(b.x);
quit;
/* or */
proc sql noprint;
create table new as
select x,y
from a
where x not in
(select x from b);
quit;
/* or */
data c;
merge a b(in=in1);
by x y;
if not in1;
run;
/*or*/
proc sql;
select * from a
except
select * from b;
quit;
7. 创建多个哑变量
data a;
input id type $;
cards;
1 a
2 b
3 a
4 c
5 c
;
run;
/* bool */
data b;
set a;
dmy1=(type='a');
dmy2=(type='b');
dmy3=(type='c');
run;
/*proc glmmod*/
proc glmmod data=a OUTDESIGN=c;
class type;
model id=type/noint;
run;
/*proc sql*/
proc sql;
create table d as
select id,
unique.type as _name_,
a.type=unique.type as dummy
from a,(select distinct type as type from a) as unique
order by id ,_name_;
quit;
proc transpose data=d out=dummies(drop= _name_);
by id ;
var dummy;
run;
8.两数据,相同的id,则对应数据相加
data a;
input id $ x1 x2 x3;
cards;
1 8 20 3
3 3 0 8
4 2 4 0
;
data b;
input id $ x1 x2 x3;
datalines;
1 0 7 3
4 9 0 5
5 8 5 9
;
data c;
set a b;
run;
proc sql;
create table d as
select distinct id,
sum(x1) as x1,
sum(x2) as x2,
sum(x3) as x3
from c
group by id;
quit;
/*proc summary 替换proc sql*/
proc sort data=c;
by id;
run;
proc summary data=c;
var x1 x2 x3;
by id;
output out=d(drop=_freq_ _type_) sum=;
run;
/* merge 然后sum*/
data want(drop=x11 x22 x33);
merge a b(rename=(x1=x11 x2=x22 x3=x33));
by id;
x1=sum(x1,x11);x2=sum(x2,x22);x3=sum(x3,x33);
run;
/*proc sql coalesce连接*/
proc sql;
select coalesce(a.id,b.id) ,sum(a.x1,b.x1) as x1 ,sum(a.x2,b.x2) as x2,sum(a.x3,b.x3) as x3
from a
full join b on a.id=b.id
order by 1 ;
quit;
9.数据中id相同的观察中间添加空行
/*以sashelp.stocks数据为例,stock相当于你的code*/
dm "out;file c:\result.txt;";
data new;
set sashelp.stocks;
by stock;
output;
if stock=lag(stock) then do;
if mod(_n_,1)=0;
array allnums {*} _numeric_ ;
array allchar {*} _character_ ;
drop i;
do i=1 to dim(allnums); allnums{i}=.; end;
do i=1 to dim(allchar); allchar{i}=' '; end;
output; /* Output blank observation */
end;
run;
10.循环取数据的几行生成新的数据
%macro splitfile(num);
data _null_;
if 0 then
set YOUTDATA nobs=count;
call symput('numobs',put(count,8.));
run;
%let m=%sysevalf(&numobs/&num,ceil);
data %do j=1 %to &m;
class_&j
%end;
;
set YOURDATA;
%do i=1 %to &m;
if %eval(&num*(&i-1)) <_n_ <= %eval(&num*&i) then
output YOURDATA_&i;
%end;
run;
%mend splitfile;
%splitfile(91);
/* ceil ,call execute */
data _null_;
if 0 then set sashelp.class nobs=nobs;
length dslist $100;
size=6;
dsnum=ceil(nobs/size);
do i=1 to dsnum;
dslist=cat(strip(dslist)," ds"||strip(i));
end;
call execute("data "||trim(dslist)||";");
call execute(" set sashelp.class;");
do i=1 to dsnum;
call execute( " if "||strip((i-1)*size)||" <_n_<= "||strip(i*size)||" then output ds"||strip(i)||";");
end;
call execute("run;");
run;
/* hash */
data _null_ ;
dcl hash hh ( ) ;
hh.definekey ('k' ) ;
hh.definedata ('sex', 'name', 'age', 'height', 'weight') ;
hh.definedone () ;
do until(mod(k,5)=0 or last);
k+1;
set sashelp.class end=last ;
hh.add();
end;
gp+1;
hh.output(dataset: 'a'||strip(gp));
run;
人大经济论坛SAS版的几个问题相关推荐
- 人大经济论坛发现好资料
今天在网上找了好久都没找到矩阵分析书( Lay C David 之 Linear Algebra and itsApplications 第4版),在人大经济论坛上找到了.非常感谢,在此宣传一下,有需 ...
- 推荐一个经济学方面的论坛:人大经济论坛
关于"人大经济论坛" 人大经济论坛,国内最大的经济.管理,金融和统计方面的论坛.论坛涵盖了经济学科的众多领域,包括了博弈论,微观经济学,宏观经济学,制度经济学,计量经济学,制度经济 ...
- 人大经济论坛:统计学的一些经典教材
一.统计学基础部分 1.<统计学> David Freedman等著,魏宗舒,施锡铨等译 中国统计出版社 据说是统计思想讲得最好的一本书,读了部分章节,受益很多.整本书几乎没有公式,但是讲 ...
- 梁昌勇 软件工程_梁昌勇简介_研究领域_学术成果_合肥工业大学管理学院教授-教师点评 - 人大经济论坛...
梁昌勇 代表性学术成果 (1)RFID技术在汽车制造过程控制与质量跟踪系统中的应用 国家"863"项目 2007.01-2010.06, 主持 (2)隐性目标决策问题的智能决策模型 ...
- lm曲线公式推导_LM曲线-经典微观理论- 人大经济论坛-经管百科
LM曲线的推导过程货币需求和货币供给变动对LM曲线的影响当决定LM曲线的因素发生变动时,LM曲线的位置会发生变动.首先,如果货币的需求增加,既定的收入条件下市场均衡利息率升高,从而LM曲线向左上方移动 ...
- php 正态分布数据描述,正态分布-统计百科- 人大经济论坛-经管百科
正态分布(normal distribution) 什么是正态分布编辑本段回目录 正态分布是一种概率分布.正态分布是具有两个参数μ和σ2的连续型随机变量的分布,第一参数μ是遵从正态分布的随机变量的均值 ...
- 管理无人工厂属于计算机在,无人工厂-生产管理- 人大经济论坛-经管百科
1.首先,"无人工厂"中的高利润中有一部分来自于本企业工人创造的剩余价值 当"无人工厂"是一个独立的生产企业,其背后没有庞大的科研队伍时,先进的技术工艺要求具有 ...
- php 电梯广告系统设计,电梯广告-市场营销- 人大经济论坛-经管百科
乘电梯上下楼对于大多数人来说是一件单调而乏味的事情,通常人们在等电梯.电梯上下运行时,也是最无聊的时候,有强烈的.下意识的视觉需求,广告画面的出现自然成为视觉的中心.所以,如果电梯广告制作精美.有很强 ...
- 人大经济论坛——经管类必去的论坛
http://www.pinggu.org/bbs/viewthread.php?tid=397908&page=1&fromuid=1679141
最新文章
- 困扰爱因斯坦的「幽灵般的超距作用」,是如何被贝尔定理证明确实存在的?...
- Yii2 HOW-TO(2):最佳实践(1)
- 36. Valid Sudoku数独判断
- 十周年“设计大佬”首谈行业变革:数据驱动超过 10% 的业绩增长
- 利用SQLChiper对Android SQLite数据库加密
- .net core 微服务之API网关 开源中间件 Ocelot 笔记
- JVM系列之:再谈java中的safepoint
- 【HDU - 1045】Fire Net (dfs 或二分图)
- LeetCode MySQL 1098. 小众书籍
- LeetCode 166. 分数到小数
- python学习笔记六 初识面向对象上(基础篇)
- 随想录(objc的编译)
- php 封装模式,PHP设计模式(三):封装
- springboot整合mybatis-plus多数据源分别连接mysql和oracle
- 如何测试视频播放器?
- 板绘萌新拿到数位板之后,不知道先做什么?这些板绘学习小技巧必须要知道
- postgresql 客户端启动配置
- 老生常谈01 - 每日三省吾身
- 微信钱包里的钱居然不见了,微信支付绑卡的用户要注意这几点
- 微信公众号之渲染静态模板