京公网安备 11010802034615号
经营许可证编号:京B2-20210330
SAS Says 扩展篇IML:函数玩一玩
1. 元素函数
元素函数是针对矩阵里的元素进行操作的,比如:
|
abs( ) |
取绝对值 |
|
exp( ) |
e的元素次方 |
|
int( ) |
取整 |
|
log( ) |
取ln |
|
mod( ) |
取余 |
|
sqrt( ) |
将元素开方 |
举个栗子:
例子
proc iml;
a={9 -2.38, -1 0, 2 1};
c1=abs(a);
c2=exp(a);
c3=int(a);
c4=mod(a);
print a,c1,c2,c3,c4;
quit;
2. 矩阵函数
矩阵函数将对整个矩阵进行操作:
矩阵查询函数可以查询矩阵的一些基本信息,如行数、列数、行最大值、列最大值等等;
矩阵生成函数可以对矩阵进行分块、取对角线等,生成一个新的矩阵。
(1)矩阵查询函数
all (条件):当矩阵所有元素都满足条件时,返回1,否则返回0;
any (条件):只要矩阵中有一个元素满足条件,就返回1,否则返回0。
例子
proc iml;
a={9 -2.38, -1 0, 2 1};
c1=all(a>0);
c2=any(a>0);
print a,c1,c2;
quit;
loc(条件):返回满足条件的元素的标号,还可以与截取运算符[]搭配使用,获取标对应的数值。
例子
proc iml;
a={9 -1 3, 3 -3 0};
c1=loc(a>0);
c2=a[ loc(a>0) ];
print a,c1,c2;
quit;
nrow(矩阵):求矩阵行数;
ncol(矩阵):求矩阵列数;
type(矩阵):得到矩阵的类型,数值型返回N、字符型返回C,如果矩阵不含任何值,返回U。
length(矩阵):求矩阵每个元素的长度,只能是字符矩阵。
例子
proc iml;
a={9 -1 3, 3 -3 0};
b={"hello","world"};
c1=nrow(a);
c2=ncol(a);
c3=type(a);
c4=length(b);
print a,c1,c2,c3,c4;
quit;
(2)矩阵生成函数
通过这类函数得到一些简单、特殊的矩阵。
block(M1,M2...):创建分块对角阵;
diag(M):只保留矩阵M的对角线,其余元素均赋值为0;
vecdiag(M):将矩阵M的对角线元素变成列向量。
娘子,快来看大楼~!————→
例子
proc iml;
a={9 -1 , 3 -3};
b={1 2, 4 5};
c=block(a,b);
c1=diag(c);
c2=vecdiag(c);
print a,c1,c2;
quit;
i(n):创建n×n的单位阵;
j(row,col,value):创建row×col的矩阵,矩阵的数据均为value;
repeat(value,row,col):和上面的一样,生成row×col、元素均为value的矩阵;
insert(M1,M2,插入第n行,或插入第m列):将矩阵M2插入矩阵M1中,插入第n行,或者第m列,注意m和n必须有一个为0,因为这两个只能指定一个。
右边的朋友,我要是能和你一样高就好了。
例子
proc iml;
a=i(3);
b=j(2,4,7);
c=repeat(7,2,4);
d=insert(a,{1 -1 0},2,0);
print a,b,c,d;
quit;
uniform(seed):生成(0,1)均匀分布的伪随机数;
normal(seed):生成均值为0,方差为1的伪随机数;
例子
proc iml;
a=normal(1);
b=normal({1 1 1,1 1 1, 1 1 1});
c=normal(repeat(1,3,3));
d=uniform({2 2 2});
print a,b,c,d
quit;
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
机器学习的本质,是让模型通过对数据的学习,自主挖掘规律、实现预测与决策,而这一过程的核心驱动力,并非单一参数的独立作用, ...
2026-03-27在SQL Server数据库操作中,日期时间处理是高频核心需求——无论是报表统计中的日期格式化、数据筛选时的日期类型匹配,还是业务 ...
2026-03-27在CDA(Certified Data Analyst)数据分析师的能力体系与职场实操中,高维数据处理是高频且核心的痛点——随着业务场景的复杂化 ...
2026-03-27在机器学习建模与数据分析实战中,特征维度爆炸、冗余信息干扰、模型泛化能力差是高频痛点。面对用户画像、企业经营、医疗检测、 ...
2026-03-26在这个数据无处不在的时代,数据分析能力已不再是数据从业者的专属技能,而是成为了职场人、管理者、创业者乃至个人发展的核心竞 ...
2026-03-26在CDA(Certified Data Analyst)数据分析师的能力体系中,线性回归是连接描述性统计与预测性分析的关键桥梁,也是CDA二级认证的 ...
2026-03-26在数据分析、市场研究、用户画像构建、学术研究等场景中,我们常常会遇到多维度、多指标的数据难题:比如调研用户消费行为时,收 ...
2026-03-25在流量红利见顶、获客成本持续攀升的当下,营销正从“广撒网”的经验主义,转向“精耕细作”的数据驱动主义。数据不再是营销的辅 ...
2026-03-25在CDA(Certified Data Analyst)数据分析师的全流程工作中,无论是前期的数据探索、影响因素排查,还是中期的特征筛选、模型搭 ...
2026-03-25在当下数据驱动决策的职场环境中,A/B测试早已成为互联网产品、运营、营销乃至产品迭代优化的核心手段,小到一个按钮的颜色、文 ...
2026-03-24在统计学数据分析中,尤其是分类数据的分析场景里,卡方检验和显著性检验是两个高频出现的概念,很多初学者甚至有一定统计基础的 ...
2026-03-24在CDA(Certified Data Analyst)数据分析师的日常业务分析与统计建模工作中,多组数据差异对比是高频且核心的分析场景。比如验 ...
2026-03-24日常用Excel做数据管理、台账维护、报表整理时,添加备注列是高频操作——用来标注异常、说明业务背景、记录处理进度、补充关键 ...
2026-03-23作为业内主流的自助式数据可视化工具,Tableau凭借拖拽式操作、强大的数据联动能力、灵活的仪表板搭建,成为数据分析师、业务人 ...
2026-03-23在CDA(Certified Data Analyst)数据分析师的日常工作与认证考核中,分类变量的关联分析是高频核心场景。用户性别是否影响商品 ...
2026-03-23在数据工作的全流程中,数据清洗是最基础、最耗时,同时也是最关键的核心环节,无论后续是做常规数据分析、可视化报表,还是开展 ...
2026-03-20在大数据与数据驱动决策的当下,“数据分析”与“数据挖掘”是高频出现的两个核心概念,也是很多职场人、入门学习者容易混淆的术 ...
2026-03-20在CDA(Certified Data Analyst)数据分析师的全流程工作闭环中,统计制图是连接严谨统计分析与高效业务沟通的关键纽带,更是CDA ...
2026-03-20在MySQL数据库优化中,分区表是处理海量数据的核心手段——通过将大表按分区键(如时间、地域、ID范围)分割为多个独立的小分区 ...
2026-03-19在商业智能与数据可视化领域,同比、环比增长率是分析数据变化趋势的核心指标——同比(YoY)聚焦“长期趋势”,通过当前周期与 ...
2026-03-19