做网站为什么要用php哈尔滨做设计和网站的公司吗
news/
2025/9/26 15:56:04/
文章来源:
做网站为什么要用php,哈尔滨做设计和网站的公司吗,电子商务工资多少钱一个月,网站建设安全架构前几天讲了数据分析中SQL的基本使用方法以及具体案例分析思路#xff0c;接下来会继续讲统计基础以及在SAS软件内的应用#xff0c;在这之前#xff0c;本文先进行SAS基础使用编程的基础介绍#xff0c;后续会主要阐述SAS软件内的统计数学的应用#xff0c;如分析或初步建…前几天讲了数据分析中SQL的基本使用方法以及具体案例分析思路接下来会继续讲统计基础以及在SAS软件内的应用在这之前本文先进行SAS基础使用编程的基础介绍后续会主要阐述SAS软件内的统计数学的应用如分析或初步建模等当然了也先推荐大家有关统计学和SAS学习的书籍统计学的两本书分别是《深入浅出统计学》和《商务与经济统计学》关于SAS的书籍《深入解析SAS——数据处理、分析优化与商业应用》大家看完之后会有一个初步的认识。本文主要介绍SAS编程和数据处理会分为几个部分。一 读取外部数到SAS数据集1通过使用libname..语句为一个SAS逻辑库分配引用名临时逻辑库WORK除外但逻辑库名不能超过8个字符必须以字母或下划线开头其余字符必须是字母数字或者下划线例如下面的SAS语句定义了一逻辑库引用名为sasliblibname saslib C:sasdata;2SAS变量属性包括变量名类型长度输出格式format输入格式informat和标签其中类型分为字符型和数字型录入下面的SAS语句定义一部分变量data saslib.sales; input ID $ Dept $ Sales Date;format Sales comma10. Date yymmdd10.;informat Date date9.;label ID”员工ID” Dept“部门” Sales“销售数据”label Date“销售时间”datalines;上述代码就定义了变量名以及对应的类型长度输出或输入格式。3.查看数据集的描述信息内容如数据集属性内容仍以saslib.sales为例Proc contents datasaslib.sales;run;就可以看到上述定义的变量名以及对应的类型长度输出或输入格式。二 对单个数据集的处理1keep或drop选取部分变量data步可以通过读取原数据集的部分变量来建立新数据集仍以saslib.sales读取变量ID和Sales并建立新的数据集sales1代码如下data saslib.sales1;set saslib.saleskeepID Sales)run;proc print data saslib.sales1;run;新的数据集只有两个变量ID和Sales我们也可以用drop语句指定dropID和Sales之外的其他变量结果是一样的2操作数据集的观测1if—then语句SAS内的条件语句与SQL或者Excel的使用方法类似直接举例如下if xy then c5;else c12;2)if 条件表达式 then delete使用delete语句删除满足条件的观测举例如下仍然是saslib.sales数据集寻找销售数据Sales不为缺失值的观测并建立新的数据集saslib.sales2代码如下data saslib.sales2;set saslib.sales;if Sales” ” then delete;run;proc print data saslib.sales2;run;上述代码就可以求出销售数据Sales不为缺失值数据集也可以求出其他不为某些条件的数据集只需把if内的条件表达式进行更改即可举例如下在saslib.sales数据集中选取ID10的观测输出到数据集saslib.sales1并将销售数据Sales100的观测输出到数据集saslib.sales2代码如下data saslib.sales1saslib.sales2;set saslib.sales;if ID10 then output saslib.sales1;if Sales100 then output saslib.sales2run;proc print data saslib.sales1;run;proc print data saslib.sales2;run;3if—then的赋值语句仍然以数据集saslib.sales为例当ID8时Sales提高20%ID10时Sales提高10%其他情况Sales都提高5%并生成新的数据集saslib.sales3下面有几种写法得出的结果是一致的代码如下data saslib.sales3;set saslib.sales;if ID8 then Sales Sales*1.2 ;else if ID10 then Sales Sales*1.1else Sales Sales*1.05;run;proc print data saslib.sales3;run; 第二种写法data saslib.sales3;set saslib.sales;select Saleswhen(8) Sales Sales*1.2;when(10) Sales Sales*1.1;otherwise Sales Sales*1.05run;proc print data saslib.sales3;run;以上两种的结果是一样的。3 分组与排序1sort by过程排序要求数据集结果内的观测按照by语句中的变量进行升序或降序排列仍然以数据集saslib.sales为例要求输出的数据集saslib.sales4按照Sales进行降序排列代码如下Proc sort datasaslib.sales out saslib.sales4; by descending Sales;run;2找到分组的第一个和最后一个观测仍然以数据集saslib.sales为例取每组ID内最高和最低的Sales生成新的数据集saslib.sales2代码如下data saslib.sales2;set saslib.sales;by ID;if first.ID or last.ID;run;4循环和数组1迭代do语句基本形式为do 索引变量开始值 to 结束值by 递进值while 表达式until表达式;SAS语句End举例如下使用do循环生成数据集do1数据集包含变量x和yx的值为1、3、5y为x的平方。代码如下Data work.do1; do x1 to 5 by 2; yx**2; output;end;run;2do until语句重复执行do循环的语句直到条件为真。基本形式如下 do until 表达式 SAS语句end举例如下将给定字符串中包含的各个单词分开写入数据集中data work.all; length word $20; drop string; string”the quick brown fox jumps over the lazy dog”; do untillengthnword0; count1; wordscan(string,count);output;end;结果如下三 对多个数据集的处理1数据集的纵向串联 1set语句纵向串联基本形式如下Data 新数据集set 数据集1 数据集2………Run举例如下对数据集work.New1和work.New1进行纵向串联生成新的数据集work.New12代码如下data work.New1; input Emp_ID $ Emp_Name $ ; datalines;ET001 Jimmy ED003 Emy EC002 Alfred EQ004 Kim;run;data work.New2; input Emp_ID $ Emp_Name $ ; datalines;EQ122 Molly ET121 Dillon ET124 Helen ED123 John;run;data work.New12; set work.New1 work.New2;run;proc print datawork.New1;run;proc print datawork.New2;run;proc print datawork.New12;run;结果如下2by 语句穿插串联所有舒服数据集先按照by变量排序新的数据集也将按照该排序基本形式如下Data 新数据集set 数据集1 数据集2………by 变量1 变量2…………Run2merge by数据集的横向合并使用by语句也称为匹配合并注意在使用by语句时输入数据集必须按照by变量排序。这个点就不举例子了和上篇文章内的SQL类似。3数据集的更改modify语句进行单个数据集的更改运用该语句可以更改原数据集中的变量但是不能再原数据集中添加或者更改举例如下数据集work.inventory中包含产品库存和价格的信息先决定将每个产品的价格提高15%代码如下data work.inventory; modify work.inventory; priceprice*1.15;run;proc print datawork.inventory noobs;run;前后代码结果为4使用自动变量first.与last.data步如果使用了by语句会自动生成两个数值型自动变量first.与last.变量分别用来辨识by组合的第一条和最后一条观测举例如下数据集Sales中包含了每位员工的销售额和员工所属部门以及性别数据统计各部门男员工和女员工的总销售额代码如下首先将数据集Sales按照Dept和Gender排序在运用first.与last.变量计算proc sort datawork.sales; by Dept Gender;run;data work.sales_dept; set work.sales; by Dept Gender; retain sales_by_dept; if first.Gender then sales_by_dept0; sales_by_deptsales_by_deptsales; if last.Gender; keep Dept Gender sales_by_dept;run;proc print datawork.sales_dept noobs; title Sales by Department by Gender;run;前后图表如下5使用hash对象处理多个数据集基本形式如下Declare object hash 对象名主题1内容1 主题2内容2…………;Hash 对象名.definekey主题1内容1 主题2内容2…………;Hash 对象名.definedata主题1内容1 主题2内容2…………Hash 对象名. Definedone第一行定义hash的对象名称第二行和第三行分别定义了对象的key变量和data变量第四行表示hash对象定义结束。下面举例说明公司现有库存1000台汽车每台车可以发往各个仓库但是不同仓库给公司带来的边际收益不同而且每个仓库有一定的容量限制现在求每个仓库发多少车同时公司的效益最高下面是仓库收益数据集expected_profit和仓库容量数据集warehouse_constraint部分数据如下图代码如下data work.allocation; retain total_cars_before 1000; length warehouse_id $6; if _N_1 then do; declare hash constraint(dataset: work.warehouse_constraint); constraint.definekey(warehouse_id); constraint.definedata(capacity); constraint.definedone(); call missing(warehouse_id,capacity); end; set work.expected_profit; rc constraint.find(); if rc 0 and capacity1 and total_cars_before1 then do; capacitycapacity-1; total_cars_aftertotal_cars_before-1; rcconstraint.replace(key:warehouse_id, data: capacity); if rc0 then do; output work.allocation; total_cars_beforetotal_cars_before-1; end; else put Error: Replace capacity failed!; end; else if rc ne 0 then put Error: Failed to find warehouse capacity!; keep warehouse_id capacity profit_margin total_cars_before total_cars_after;run;结果如下至此SAS基本的编程就说完了后续会进行SAS的统计与初步建模探讨。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/916772.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!