奇怪的现象 前几天跟同事聊起来,在计算机内部float比较是很坑爹的事情。比方说,0.1+0.2得到的结果竟然不是0.3?...在十进制中也会存在这样的问题,数字不能准确地表示像1/3这样的数字,所以你必须舍入到0.33之类的东西 - 你不要指望0.33 + 0.33 + 0.33加起来就是1。...因此我们在比较两个float是否相等时,不能仅仅依靠 == 来进行判断,而是当他们两者的差小于一个我们可以容忍的小值时,就可以认为他们就是相等的。 Python中是如何解决的?...各种语言中都有类似的处理方式,python中是这样处理的?...使用math.isclose方法,传入需要比较的两个数和可以接受的精度差值即可。
SAS变量的基本类型有两种:数值型和字符型。日期、时间等变量存为数值型。SAS的数值型变量可以存储任意整数、定点实数、浮点实数,一般不关心其区别。数值型变量在数据集中的存贮一般使用8个字节。...SAS的字符型变量缺省的长度是8个字符,但是如果在INPUT语句中输入字符型变量时指定了长度则不受此限制。...逻辑运算符 = ^= > = <= IN EQ NE GT LT GE LE IN是一个SAS特有的比较运算符,用来检查某个变量的取值是否在一个给定列表中,比如: prov in ('北京','天津...','上海') 逻辑运算符:&(AND) l (OR) ^(NOT) 连接两个字符串的l l(两个连续的l号) 取两个运算值中较大一个的(比如3 5结果为5),取两个运算值中较小一个的>< 1.2...在SAS程序中可以加入注释,注释使用C语言语法,用/*和*/在两端界定注释,这种注释可以出现在任何允许加入空格的位置,可以占多行。
前言·数说君的话 在统计软件里,SAS算是一哥了,虽然R免费开源有各种统计函数、python功能多各方面比较平衡,但是、但是——SAS贵啊!正版的SAS一年要上百万,不是土豪用不起啊!...大家可以在前程无忧上分别搜索一下SAS、R和Python,对比一下,招SAS的公司都是大型药厂、外企、金融机构特别是银行...相比之下,R在学术界用的较多,Python在初创或者创新公司用的比较多。...数据类型 未加工的数据有多种形式,但SAS将其简单化。在SAS中只有两种数据类型——数值型和字符型。数值型完全是数据,可以被加减乘除、可以是正负且是小数。...批处理或后台模式的成本比较低,适合于大型工作,工作完成后,结果会存于文件夹中,你可以任何时候输出查看。批处理未必适合你的操作环境,另外提交方式也会有不同,最好查看SAS帮助文档,或咨询SAS顾问。...除此之外,在获得SAS帮助、改变SAS系统选项、定制SAS人机会话等情况时,可能还会用到其他的视窗,下图显示了Microsoft Windows SAS会话中默认的视图: ?
目前市场上的14TB机械盘随机读写时功耗在8W左右。而企业级NVMe SSD在随机读写时峰值功耗可能要达到10~25W左右,25W这个数值已经接近了x8通道PCIE插槽的额定功耗值。...再就是由于用量比较少,功耗并不是最重要的考量因素。...该模式需要两个甚至多个控制器共同访问同一块SSD,而这个需求只有SAS SSD(原生双端口)可以做到,当然,业界目前已经有NVMe SSD产品也可以做到双端口。 ?...一旦某个链路出现问题,丝毫不影响另外的x2链路。...综上,企业级NVMe SSD,除了性能,冬瓜哥觉得,可靠性稳定性当然是第一位的,但是功耗、双端口这两个特性,恐怕是企业级NVMe SSD后续发展中必须考虑的特性了。
相关、回归等基本统计 ---- 前言·数说君的话 在统计软件里,SAS算是一哥了,虽然R免费开源有各种统计函数、python功能多各方面比较平衡,但是、但是——SAS贵啊!...SAS软件入门 1.1 SAS语言 1.2 SAS数据集 1.3 SAS程序的两个过程 1.4 数据步的内置循环 1.5 选择一个提交程序的方式 1.6 SAS视窗环境中的视窗和命令 1.7 在SAS视窗环境中提交程序...数据类型 未加工的数据有多种形式,但SAS将其简单化。在SAS中只有两种数据类型——数值型和字符型。数值型完全是数据,可以被加减乘除、可以是正负且是小数。...除此之外,在获得SAS帮助、改变SAS系统选项、定制SAS人机会话等情况时,可能还会用到其他的视窗,下图显示了Microsoft Windows SAS会话中默认的视图: ?...当你使用的是多用户系统,或者处理大型数据而使得SAS运行占用大量时间时,这部分信息可以帮助你检查哪一步比较耗时。 如果SAS程序出现错误,错误信息也会反馈在日志窗口中,说明哪里出错及出错表现。
特别说明:本节【SAS Says】基础篇:SAS宏初步,用的是数说君学习《The little SAS book》时的中文笔记,我们认为这是打基础的最好选择 SAS是一个专业的统计软件,前面我们介绍了很多数据管理...、输出美化的东西,本节终于要介绍一点SAS做统计的知识了,不过,在基础篇中我们只大概介绍一下,更多统计分析的东西放在进阶篇中。...Proc UNIVARIATE的使用很简单,在proc语句之后,用var语句指定一个或多个变量: PROC UNIVARIATE; VAR variable-list; 没有var语句,SAS会计算所有数值变量的统计量...基本形式为: PROC REG; MODEL dependent=independent; Model语句中,自变量在左边,因变量在右边。 Plot语句是reg过程中许多可选的语句之一。...现在想知道哪一组最高,因此还要用means语句,并选择Scheffe’s multiple-comparison过程来比较均值。代码为: ? 结果将在8中讨论: 8.
SAS基础篇中,我们介绍了一些入门的东西。在进阶篇中,我们将介绍一些统计方面的SAS应用,包括主成分分析、判别分析、非参数检验、logistic模型等等。...我们不去比较SAS IML模块和MATLAB的运算功能,只要知道,在SAS里,IML和SAS数据集做交互将会方便很多,你也不用将数据倒来倒去! 来吧,带你进入IML的世界,它不会让你失望的!...看下面的内容 2 标量、向量与矩阵 (1)定义标量 就是在iml模块里,定义数值或者字符串, 例子 proc iml; a=100; b=.; c="Hello"; print a,b,c;...3 矩阵的元素运算 注意,是矩阵中的各个元素之间的运算,不是两个矩阵的运算。...(2)比较运算 用比较运算符比较两个矩阵中的元素,如果比较成立,则返回1,否则返回0,比如: 例子 proc iml; a={1 2,3 4}; b={0 2,1 1}; c1=a>b; c2
FUZZ(x) 当x与其四舍五入整数值相差小于1E-12时取四舍五入。 LOG(x) 求x的自然对数。 LOG10(x) 求x的常用对数。 EXP(x) 指数函数 。...例如,PDF('NORMAL', 1.96)计算标准正态分布在1.96处的密度值(0.05844),CDF('NORMAL', 1.96)计算标准正态分布在1.96处的分布函数值(0.975)。...在同一个数据步中对同一个随机数函数的多次调用将得到不同的结果,但不同数据步中从同一种子出发将得到相同的随机数序列。随机数种子如果取0或者负数则种子采用系统日期时间。...5.三角分布随机数 RANTRI(seed,h),seed为任意数值常数,0<h<1。此分布在0到1取值,密度在0到h 之间为2x/h,在h到1之间为2(1-x)/(1-h)。...这些样本统计函数只对自变量中的非缺失值进行计算,比如求平均时把缺失值不计入内。
我们不去比较SAS IML模块和MATLAB的运算功能,只要知道,在SAS里,IML和SAS数据集做交互将会方便很多,你也不用将数据倒来倒去! 来吧,带你进入IML的世界,它不会让你失望的!...看下面的内容 2 标量、向量与矩阵 (1)定义标量 就是在iml模块里,定义数值或者字符串, 例子 proc iml; a=100; b=.; c="Hello"; print a,b,c;...3 矩阵的元素运算 注意,是矩阵中的各个元素之间的运算,不是两个矩阵的运算。...(2)比较运算 用比较运算符比较两个矩阵中的元素,如果比较成立,则返回1,否则返回0,比如: 例子 proc iml; a={1 2,3 4}; b={0 2,1 1}; c1=a>b; c2...(3)取值运算 :取出矩阵中对应元素较大的; ><:取出矩阵中对应元素较小的。
) 【SAS Says】基础篇:读取数据(下) 在微信号“shushuojun”中回复“SAS”查看。...前面我们介绍了各种用SAS读取数据的知识,现在数说君考你两个问题: (1)有一个TXT数据文档,如何让SAS只读取第3到第5行的数据?...下面的语句就是告诉SAS将一个两位年份的日期解释为1960年到2049年之间: OPTIONS YEARCUTOFF=1950; SAS表达式中的日期一旦被以SAS日期格式读取之后,可以将此数据想其他数值数据一样用在表达式中...Fomats 打印日期数据时,还需要将数值换成日期,下面的FORMAT语句告诉SAS用WEEKDATE17.格式打印变量BirthDate。...这个变量必须是数值型,且初始值为0。
下面的语句就是告诉SAS将一个两位年份的日期解释为1960年到2049年之间: OPTIONS YEARCUTOFF=1950; SAS表达式中的日期一旦被以SAS日期格式读取之后,可以将此数据想其他数值数据一样用在表达式中...Fomats 打印日期数据时,还需要将数值换成日期,下面的FORMAT语句告诉SAS用WEEKDATE17.格式打印变量BirthDate。...这个变量必须是数值型,且初始值为0。...SAS中,数组是一组变量,变量可以是已存在的,也可以是新创建的。...程序中,当原始变量(domk-ttr)值为9时,song变量值为缺失值,否则就把原始变量的值赋给song变量。另外avgscore计算平均值: ?----
SAS是一个专业的统计软件,前面我们介绍了很多数据管理、输出美化的东西,本节终于要介绍一点SAS做统计的知识了,不过,在基础篇中我们只大概介绍一下,更多统计分析的东西放在进阶篇中。...Proc UNIVARIATE的使用很简单,在proc语句之后,用var语句指定一个或多个变量: PROC UNIVARIATE; VAR variable-list; 没有var语句,SAS会计算所有数值变量的统计量...基本形式为: PROC REG; MODEL dependent=independent; Model语句中,自变量在左边,因变量在右边。 Plot语句是reg过程中许多可选的语句之一。...在model和plot语句中,距离是自变量、高度是因变量。输出结果在6中讨论 8.6 读取proc reg的输出 Reg的输出有几个部分,方差分析和参数估计通常输出在一页。...结果将在8中讨论: 8.8 读取proc anova的输出 Procanova的输出至少有两个部分,首先打印出有一个表,给出分类变量的信息:水平数、变量值、观测值数。再次打印出变量表的分析。
复习: 前面三节 【SAS Says】基础篇:SAS软件入门(上) 【SAS Says】基础篇:SAS软件入门(下) 【SAS Says】基础篇:读取数据(上) 前面在“基础篇:读取数据(上)”中我们介绍了...但当每个变量的值都出现在数据行的相同位置时,并且变量值是字符串或者标准数值(只包含数据、小数点、正负号、和科学标注的E。逗号和日期都不能算)时,可以使用column input来读取。...Column input的input语句格式如下:input关键字后接变量名、再接变量的列位置(列位置是字符或者数值在一行中的位置)。字符串变量名后仍要用“空格+$”,变量名之间仍要用空格隔开。...SAS中,informats可以用来告诉电脑如何读取这样的数值。...由于input读取字符串变量默认为8个字符,因此在上例中如果狗的品种名(dogbreed)超过8个字符,则需要定义长度,定义为$length,在该长度中,空格也算在内。
因为SAS认为缺失值是比字符串和数值都小,所以排在了第一位。另外,由于whale shark 40的数据有两个,故因为nodupkey选项而被删除一个。说明可见日志: ?...3.5 用formats改变打印外观 打印数据时,SAS会自动为你安排最好的格式,小数点位数、空格等。 当不需要默认格式时,可以用SAS formats改变打印的外观。...且如果使用list ,SAS会自动在两个变量之间加上空格;使用column或者formatted,SAS将会把变量放在任何你指定的地方。...代码告诉SAS打印两个表,一个是one-way的频率表,一个是交叉表。交叉表的每个小方格内,SAS打印了频数、百分比、行百分比和列百分比。左边和右边是累积百分比。注意计算频数时没有考虑缺失值。 ?...数值变量VS字符串变量 从proc report得到的报告类型,部分依据于使用的数值类型。只要报告中起码有一个字符串变量,默认的报告就是每个观测值一行。
将其他软件中的数据文件转换成SAS数据集 如果数据在一个软件中以某种格式存放,但需要用另一种软件分析时,就会很麻烦。...(Input语句还将在2.5和2.15中讨论) ? 外部原始数据 数据外SAS程序外部时,使用INFILE语句告诉SAS外部数据的文件名和存放路径,它在data语句之后,在INPUT语句之前。...SAS中,informats可以用来告诉电脑如何读取这样的数值。...DSD DSD (Delimiter-Sensitive Data)有三个作用:忽略引号中数值的分隔符;自动将字符数据中的引号去掉;将两个相邻的分隔符当做缺失值来处理。...2.19 临时和永久数据集 SAS临时数据集只在目前工作或会话中存在,关闭SAS或结束工作时则删除;永久数据集当关闭SAS或结束工作时仍然存在。
) 【SAS Says】基础篇:读取数据(下) 【SAS Says】基础篇:开发数据 在微信号“shushuojun”中回复“SAS”查看。...因为SAS认为缺失值是比字符串和数值都小,所以排在了第一位。另外,由于whale shark 40的数据有两个,故因为nodupkey选项而被删除一个。说明可见日志: ?...4.5 用formats改变打印外观 打印数据时,SAS会自动为你安排最好的格式,小数点位数、空格等。 当不需要默认格式时,可以用SAS formats改变打印的外观。...对于字符串、数值、日期变量,SAS有很多格式。...且如果使用list ,SAS会自动在两个变量之间加上空格;使用column或者formatted,SAS将会把变量放在任何你指定的地方。
前言 在SAS中国也已经待了有一段时间,经过这么久的熏陶我对SAS语言还不是很熟悉,平时的时间也没有太过深入的去进行学习SAS语言,前几天去中国银行客户现场,也总算接触到了一点SAS语言的皮毛,今天就算是一个引子吧...数据集 数据集的名称不超过32个字符 变量:简单来说就是表头,数据表每一个数据项的名称就是一个变量 类型:数值型和字符型(变量名后带$) 特性:名称、类型、长度、输入格式、输出格式、标记 最多有32个字符组成...,这里不过多赘述) SAS代码导入 本次工作的目标 本次的工作目标是用SAS脚本把客户的外部数据导入到SAS软件中 SAS代码导入实例 导入内部数据,也就是sas代码中定义的数据,使用 datalines...:$20. sex $ age; run; 在最后介绍一下另外的两个关键字 missover、 dsd missover的作用是,如果txt文件一行数据不够时,告诉sas不要跳到下一行进行读取,简单来说就是保证读取数据不会串行...sas比较强大的地方就是可以无缝与shell进行集成衔接,这样你就可以使用shell获取到的结果进行数据处理与分析,可用到的场景非常之多,举一个例子,在sas进行io测试的时候,我们可以图形化界面显示出
python应该是目前在量化/数据领域最广泛应用的软件了,之前实习也基本是用python,不论是数值还是文本数据,都能很好处理,而且也有各种算法模块可以直接调用,省去了自己编写的麻烦,语言也很简洁。...但python也有他不适合的地方,python在量化上比较适合用在数据处理和回测上,但如果要做一些其他的就会存在一些问题,后面说sas的时候会举一个例子。 R ?...VBA是比较特殊的一门语言,内嵌在OFFICE中,是VB的简化版,不仅仅是针对EXCEL了,WORD,PPT里都可以用,有时候也叫宏,基本是一样的,只不过VBA是码的,宏是录的。...所以我一般能录就录,能不写就不写,录的逻辑是,你可以在excel把你想通过代码实现的功能操作一遍,编译器里会自动生成代码,直接运行的话效果跟操作时一模一样的,再稍微改一改就可以用了。...STATA和EVIEWS是两个功能非常类似的软件,计量上用的比较多,我当时选择了stata,没有学EVIEWS,整体来说,都是计量软件,STATA对面板数据支持比较多,EVIEWS对时间序列支持更好,STATA
代码告诉SAS打印两个表,一个是one-way的频率表,一个是交叉表。交叉表的每个小方格内,SAS打印了频数、百分比、行百分比和列百分比。左边和右边是累积百分比。注意计算频数时没有考虑缺失值。 ?...数值变量VS字符串变量 从proc report得到的报告类型,部分依据于使用的数值类型。只要报告中起码有一个字符串变量,默认的报告就是每个观测值一行。...第一份报告与proc print相似,第二份报告,由于只选择museum变量和camping两个数值型变量,默认直接显示加总情况: ?...Group 变量 下面的代码告诉SAS创建一个显示每个部门工资总和、奖金总和(数值变量将默认被加总)的报告: ?...下面的代码包含两个proc report,第一个中,region和type都被定义成group变量,第二个中,region仍然是个group变量,但type是across变量。
1 赋值语句 在SAS中用赋值语句计算一个值并存放到变量中。 格式为 变量名=表达式: 例如 ? 2 输出语句 SAS数据步的输出一般是数据集,用赋值语句计算的结果会自动写入数据集。...PUT语句在关键字后面列出要输出的各项,每一项可以是变量名或字符串,不能为数值常量或表达式,各项之间用空格分开。PUT语句的输出结果显示在LOG窗口。...在FILE语句中指定一个包含文件名的字符串可以把PUT语句的输出转向到此文件中。...5 数组 SAS可以把一组同为数值型或同为字符型的变量合在一起,使用同一个名字称呼,用下标来区分。...·FUZZ(x)当x与其四舍五入整数值相差小于IE-12时取四舍五入。 ·LOG(x)求x的自然对数。 ·LOG10(x)求x的常用对数。
领取专属 10元无门槛券
手把手带您无忧上云