SAS运行时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAS运行时出错相关的知识,希望对你有一定的参考价值。

SAS安装完成后(敢肯定安装过程正确),运行SAS软件时弹出来一段这样的话
OLE:Object's class is not registered in the registration database.
the application nessary to activate this object is unavailable.
而且很奇怪,运行SAS的时候那个编辑框(editor)没有出现,也就是都不能够把程序打到SAS里去,各位大虾给个意见啊~先谢啦

参考技术A 免安装版文件夹内一般有个绿化.bat的文件夹要运行一下。
重启电脑后就可以用了。

如果还是不行,就是和你系统不兼容。。建议可以到绿盟下载。那里有
打字不容易,感觉ok就给个好评采纳吧,谢谢。。。。。
参考技术B 我也有这个问题啊,你当时是怎么解决的呢? 参考技术C 类未注册啊

在读取SAS文件时,Pandas以正确的数据类型失败

我有一个SAS dataset,当我运行它时,我在SAS上得到以下输出:

enter image description here

我还有以下Python代码获取.sas7bdat文件并显示输出,即这里是前五个观察结果。

import pandas as pd
file_name = "cars.sas7bdat"
my_df = pd.read_sas(file_name)
my_df = my_df.head()
print(my_df)

enter image description here

如您所见,当涉及整数数据类型时,它无法正常工作。 CYL和WGT变量是整数但如果我使用pandas的read_sas function则无法正确显示。

知道到底发生了什么事吗?

答案

SAS将所有数字表示为64位(8字节)浮点数。但是你可以通过告诉它存储少于8个字节来节省磁盘空间。您发布的数据集为CYL和WGT执行了此操作。

enter image description here

当SAS从磁盘读取数据集以使用它时,将缺少的最低有效字节设置为二进制零。显然read_sas不理解这一点,而不是将丢失的字节设置为二进制零,它做了别的事情。因此看似随机的数据。

CYL的第一个值是8,它在IEEE浮点数中是十六进制码

40 20 00 00 00 00 00 00

您显示的8.00046的值将是此值。

40 20 00 06 07 80 FD C1
另一答案

终于解决了这个问题。嗯,这似乎绝对是熊猫的错误​​。我通过输入(安装)直接使用.sas7bdat库:

pip install sas7bdat

然后我运行以下代码:

import sas7bdat
from sas7bdat import *

file_name = file_path + "cars.sas7bdat"
foo = SAS7BDAT(file_name)
my_df = foo.to_data_frame()
my_df = my_df.head()
print(my_df)

运行上面的代码后,我在Python中得到以下输出:

enter image description here

因此,我得到了显示正确数据类型的输出。

希望熊猫开发人员找到上述bug的解决方案。

以上是关于SAS运行时出错的主要内容,如果未能解决你的问题,请参考以下文章

QT运行出错

运行时出错 -2147217900(80040e14)

安装SQL SERVER 2008 R2后,运行时出错。

Rails:运行 wkhtmltopdf 时出错——(加载共享库时出错)

在读取SAS文件时,Pandas以正确的数据类型失败

GG运行脚本出错,求助各路大神解惑!~!~