matrix - 如何在 SAS 中初始化一个简单的矩阵?
问题描述
我是 SAS 新手,大部分时间都在使用 R。我陷入了一个简单而令人沮丧的问题。我要做的就是在 SAS 中创建一个简单的 3 X 3 矩阵。但它会引发错误。我需要一些帮助来了解发生了什么。SAS 文档不是很有帮助。
data matrixTest;
input Y $ X;
cards;
4 0
3 1
1 1
;
run;
/*Convert X to a categorical variable*/
data matrixTest;
set matrixTest;
if X = 0 then X = "0";
else X = "1";
run;
/*Get design matrix from the regression model*/
proc transreg data=matrixTest design;
model class(X/ zero=last);
output out=input_mcmc(drop=_: Int:);
run;
mX = {5 4 3, 4 0 4, 7 10 3};
创建矩阵 mX 时出现以下错误:
ERROR 180-322: Statement is not valid or it is used out of proper order.
解决方案
您的错误是 SAS 不是矩阵语言。SAS 更像是一种数据库语言;操作单元是数据集,类似于 R 或 Python 中的 SQL 表或数据框。
SAS 确实在系统中内置了一种矩阵语言 SAS/IML(交互式矩阵语言),但它不是基本 SAS 的一部分,也不是您在所展示的上下文中使用的真正内容。作为程序的一部分输入数据的方式与在第一个数据步骤中使用数据线的方式相同。
旁注:您还在第二个数据步骤中显示了一些 R 趋势;您不能以这种方式转换变量的类型。SAS只有“数字”和“字符”,所以无论如何你都没有“分类”数据类型;保持原样。
推荐阅读
- javascript - jQuery - 事件目标多个 id 选择器?
- pascal - 旋转图像的简单方法
- java - 带有参数的子类的构造函数?
- android - Android Firebase:覆盖值而不是创建新条目
- r - R:如何真正从 S4 对象中删除 S4 插槽(附上解决方案!)
- css - Flexbox 和 CSS 位置
- reactjs - Material-UI TreeView - 如何获取被点击的 TreeItem 的 nodeId?
- liquibase - 无法从生成的差异更改日志中更新
- javascript - 发送多个 mp4 附件
- django - 用 Django 中的 jsonb 字段过滤子查询的计数进行注释