Currently browsing category

SAS

SAS导入导出时编码问题汇总

获得SAS默认编码(其实是通过启动时加载配置文件决定的,nls),

启动后无法修改,如果尝试通过下面命令设置,会得到警告,

WARNING 30-12: SAS option ENCODING is valid only at startup of the SAS System. The SAS option is …

奇怪的中文字符导致多个开源sas7bdat解析程序崩溃

最近在用开源软件解析sas7bdat时,经常碰到这样的错误(haven,readstat),

或者(parso),

  造成这样错误的sas7bdat由下面的代码生成,

继续尝试了sas7bdat.py,通过,

P.S. 刚刚Mac下测试了最新的haven通过,

  sas7bdat (R版本),可以解析,但不输出中文变量,而是用一组特殊字符(比如,X.bf..c2..c4..dd…fb..90)替代。

   

MySQL下group_concat函数的SAS实现

MySQL下的字符串聚合函数group_concat是一个非常实用的字符串合并函数, sas下的宏实现,

基本表结构如下, 按字母排序的变量和属性列表 # 变量 类型 长度 输出格式 输入格式 标签 2 brand 字符 40 $40. $40. brand 1 customer_id 字符 …

SAS不同版本数据库兼容问题

客户(使用SAS8.2)收到我提供的SAS数据库(SAS9.4),说无法打开,  

网上寻找答案,说可以指定逻辑库的版本号,比如SAS8.2支持V7,

使用v7生成的数据库,SAS8.2仍然不支持,我试着用SAS9.3来同样做了一遍,OK了。 备注:测试SAS8.2,SAS9.3和SAS9.4均只支持V6的读,不支持V6的写。      

SAS 连PostgreSQL的几种方法

SAS 9.4之前,需要ODBC的方式连接PostgreSQL(记得提前配置好DSN),这些方法不仅仅实用于PostgreSQL,很多常用的数据库都可以通过ODBC或者直接连接的方式访问。 方法一,ODBC里执行PostgreSQL的SQL语句

方法二,建逻辑库

方法三,不使用DSN,而是配置ODBC.ini 配置文件(未测试过,这个比较适合Linux环境)

方法四,SAS 9.4开始可以直接连接PostgreSQL等多种数据库了,使用更简单了,

  SAS导入PostgreSQL的注意事项, PostgreSQL鼓励使用Text(不指定长度的varchar),但SAS会因为它不指定长度,而使用默认的最大长度(1024),这样导致SAS库变得非常大,而访问非常缓慢,如下图所示,在PostgreSQL里,clustername是text,clustername1则是varchar(20),所以记得重新定义下长度,这种情况下,ODBC里执行PostgreSQL的命令相对最好用。   P.S. 从SAS9.4开始,SAS/ACCESS 接口增加了更多的数据库支持, Amazon Redshift, Aster, …

实用SAS 代码片段

SAS表的Name是类似_COL0,_COL1,_COL2这样的字段,Label是中文名,直接导出到PostgreSQL的话,字段实用的是Name,

这时候需要做rename,代码,