转向 64 位 SAS
Moving to 64 bit SAS
我每天按计划处理数百个 SAS 程序运行。
如果我将 SAS 升级到 64 位,如何防止由于迁移而导致的错误(可能语法/过程要求从 32 位更改为 64 位)?
32 位和 64 位之间没有任何语法差异。您应该转换数据,查看 proc migrate
从可用性的角度来看,32 位和 64 位 SAS 之间的主要区别:
- 正在导入 Excel(和 Access)文件。如果您使用 Windows,您的 SAS 位数需要与 Microsoft Office 的位数匹配才能使用
DBMS=EXCEL
或 libname excel
。有关更多详细信息,请参阅 this paper。有一些解决方法,包括 PC 文件服务器或使用 DBMS=XLSX
,具体取决于您的版本和 OS.
- 格式化目录。您的格式目录在 32 位和 64 位 SAS 之间不兼容,就像它们在 Unix 和 Windows 之间不兼容一样。在我看来,最好的办法是使用
proc format
的 CNTLOUT
选项将它们导出到数据集,然后使用 CNTLIN
选项以 64 位导入它们。如果您的环境中有混合版本(有些人有 32 个版本,有些人有 64 个版本),您将希望维护两个目录或让每个人仅与 CNTLOUT
导出的数据集交互。这也适用于 stored/compiled 宏目录。
- 数据集版本。 32 位和 64 位 SAS 可以读取彼此的数据集,但代价是访问时间较慢;根据我的经验,这并没有 太 坏,但是如果您有大型数据集,您将希望使用
proc migrate
转换它们,或者简单地读入它们并以 64 位重写它们一次。
Chris Hemedinger 在他的博客 post on The SAS Dummy 中涵盖了相同的三个问题,并提供了一些额外的细节。
一般来说,数据步骤和过程的语法在两个版本之间没有区别,尽管随着内存的增加,一些在 32 位中不切实际的技术在 64 位中变得可用(大型哈希表,一些 PROCs 可以工作使用大量 RAM 非常有效)。
我每天按计划处理数百个 SAS 程序运行。
如果我将 SAS 升级到 64 位,如何防止由于迁移而导致的错误(可能语法/过程要求从 32 位更改为 64 位)?
32 位和 64 位之间没有任何语法差异。您应该转换数据,查看 proc migrate
从可用性的角度来看,32 位和 64 位 SAS 之间的主要区别:
- 正在导入 Excel(和 Access)文件。如果您使用 Windows,您的 SAS 位数需要与 Microsoft Office 的位数匹配才能使用
DBMS=EXCEL
或libname excel
。有关更多详细信息,请参阅 this paper。有一些解决方法,包括 PC 文件服务器或使用DBMS=XLSX
,具体取决于您的版本和 OS. - 格式化目录。您的格式目录在 32 位和 64 位 SAS 之间不兼容,就像它们在 Unix 和 Windows 之间不兼容一样。在我看来,最好的办法是使用
proc format
的CNTLOUT
选项将它们导出到数据集,然后使用CNTLIN
选项以 64 位导入它们。如果您的环境中有混合版本(有些人有 32 个版本,有些人有 64 个版本),您将希望维护两个目录或让每个人仅与CNTLOUT
导出的数据集交互。这也适用于 stored/compiled 宏目录。 - 数据集版本。 32 位和 64 位 SAS 可以读取彼此的数据集,但代价是访问时间较慢;根据我的经验,这并没有 太 坏,但是如果您有大型数据集,您将希望使用
proc migrate
转换它们,或者简单地读入它们并以 64 位重写它们一次。
Chris Hemedinger 在他的博客 post on The SAS Dummy 中涵盖了相同的三个问题,并提供了一些额外的细节。
一般来说,数据步骤和过程的语法在两个版本之间没有区别,尽管随着内存的增加,一些在 32 位中不切实际的技术在 64 位中变得可用(大型哈希表,一些 PROCs 可以工作使用大量 RAM 非常有效)。