如何比较SAS中的表结构
我是一名测试人员,我需要比较 SAS 中的两个数据集结构(不是表数据)。 我尝试使用“proc Compare”,但它比较数据。我想比较数据集/表结构(列名、数据类型、空约束等)
有人可以帮忙吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我是一名测试人员,我需要比较 SAS 中的两个数据集结构(不是表数据)。 我尝试使用“proc Compare”,但它比较数据。我想比较数据集/表结构(列名、数据类型、空约束等)
有人可以帮忙吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
您可以询问 SASHELP 中的视图(vtable、vcolumn 等)来执行此操作。一种快速方法是从 sashelp.vcolumn 为要比较的两个表中的每一个创建一个临时表,然后使用 PROC SQL 连接来比较它们。然后您将比较 vcolumn 数据中表示的结构。
要开始使用此功能,请查看 SASHELP.vcolumn 中的内容。
以下是使用此方法的基本示例,用于比较两个数据集中的变量。
您可以由此推广其他属性,例如数据类型、长度、标签等,所有这些属性都在 vcolumn 中可用。
You can interrogate the views in SASHELP (vtable, vcolumn etc) to do this. A quick way would be to create a temporary table from sashelp.vcolumn for each of the two tables you want to compare, then use a PROC SQL join to compare them. Then you'll be comparing the structures, which is represented in the data from vcolumn.
To get started with this, have a look at what's in SASHELP.vcolumn.
Here is a basic example of employing this method, to compare variables in 2 datasets.
You can generalise from this for other attributes such as data type, length, label etc., all of which are available in vcolumn.
您可以使用
proc content
将描述符部分写入数据集,然后使用proc Compare
来查看它们的结构有何不同。 out2 选项将写出完整性约束(如果存在)。如果不是,数据集将为空。某些列(如 CRDATE(创建日期)或 LIBNAME 或 MEMNAME)可能会有所不同,因此您可能希望从比较中排除这些列。You can write the descriptor portions to data sets using
proc contents
then useproc compare
to see how their structures differ. The out2 option will write out integrity constraints if they exist. If not the data set will be empty. Some columns like CRDATE (creation date) or LIBNAME or MEMNAME, may be expected to differ and so you may wish to exclude those from the comparison.1- 使用 PROC CONTENTS 获取数据集描述(数据集名称、变量名称、变量标签、变量类型...)
2- PROC 对所有内容输出进行排序
3- 使用 PROC COMPARE。
IE
1- Use PROC CONTENTS to get your dataset description (dataset name, variable name, variable label, variable type....)
2- PROC SORT all of the content output
3- Use a PROC COMPARE.
i.e
您还可以使用 清单表。
在我最近的博客文章如何比较 SAS 数据表中的常见/不常见列,我使用以下代码示例展示了如何执行此操作:
然后我们可以比较 2 个数据集,如下所示:
运行此结果代码将是以下清单表:
有关更多详细信息,请参阅博客文章 如何比较 SAS 数据表中常见/不常见列
You can also compare SAS tables structures side-by-side visually using checklist tables.
In my recent blog post How to compare SAS data tables for common/uncommon columns, I show how to do this using the following code example:
Then we can compare 2 datasets as follows:
The result of running this code will be the following checklist table:
For additional details see the blog post How to compare SAS data tables for common/uncommon columns
您可以使用 PROC COMPARE,只需在每个输入数据集上使用 OBS=0 数据集选项,这样就没有数据可供比较。
You can use PROC COMPARE, just use the OBS=0 dataset option on each input dataset so there is no data to compare.