如何在R中使用IOM协议访问SAS服务器

问题描述 投票:0回答:3

我正在尝试将 SAS 数据读入 R,类似于此处的快速教程:https://josezea.wordpress.com/2019/05/02/connect-sas-server-from-r/

问题是我尝试连接的服务器使用 IOM 协议,而

RCurl
包似乎不支持该协议。有人对使用 R 中的这些协议从 SAS 服务器读取数据有什么建议吗?它可以从文件路径或库中读取,两者都适用于我的场景。谢谢!

下面是我尝试在 R 中运行的代码:

library(RCurl)
library(haven)

protocol <- "IOM"
server <- "server.com:5555"
userpwd <- "username:password"
sasfileRoute <- "/path_to_data/bonus_schedule.sas7bdat"

## Read Data as data frame

url <- paste0(protocol, "://", server, sasfileRoute)
binary_sasdata <- getBinaryURL(url = url, userpwd=userpwd)
df_data =  read_sas(binary_sasdata)
r server sas
3个回答
3
投票

我认为您误解了链接页面的作用。 它展示了如何使用 R 读取 SAS 数据集 - 但不连接到 SAS。

SAS 数据集通常存储为 .sas7bdat 文件。 您应该通过 SFTP 或网络共享或类似方式进行连接以访问数据集;当然,如果数据集存储在 LASR 服务器或其他内存位置中,这将不起作用。

如果您需要连接到 SAS 本身(以执行代码或访问内存中的数据),如果 SAS 服务器是 SAS Viya 服务器,则可以这样做。 有关更多信息,请参阅R SWAT;它使用 SAS 的 API 来完成您的需要。

否则,您将必须从 R 内部运行 SAS 可执行文件(如果您有权访问该版本的 SAS),或者让 SAS 用户从 SAS 内部为您导出数据。 我不熟悉通过 R 直接连接 SAS 9 的方法,并且评论中的链接似乎已过时(至少 CRAN 似乎不再有该包)。

SASPy 确实允许 Python 执行与 SAS 9.4 类似的操作,因此如果您有 SAS 9.4,也许这是一个更好的途径。


0
投票

IOM 是其 Integration Technologies 产品使用的 SAS 协议。找到文件的网络路径并使用它,而不是 IOM。查看 SAS 网站上使用 IOM(C#、Java、PowerShell 等)的资源。通常,IOM 用于代码提交和 SAS 对象管理。


0
投票

正如 @Joe 所说,连接 SAS 最简单的方法通常是通过 Python 包

saspy
sasquatch
允许您使用 reticulate 连接到 saspy、启动会话、交互式地使用 SAS、在四开文档中编织 SAS 块以及在 SAS 和 R 之间传递变量。如果您设置了
saspy
,则您可以已经完成了最困难的部分。如果您在设置 saspy 时遇到困难,此
视频
可能会有所帮助。

还有其他套餐。 Roche 发布了

sasr
,它允许您连接 SAS 和 R,但它没有一些交互功能或
knitr
引擎。还有
configSAS
几乎只专注于
knitr
支持。

免责声明:我是

sasquatch
的开发者,并且
sasquatch
目前还很新。

© www.soinside.com 2019 - 2024. All rights reserved.