使用SAS IML调用R代码读CSV遇‘object bic not found’错误求助
问题解决:R环境中"object 'bic' not found"错误
错误原因
你定义的libname bic是SAS的逻辑库,这是SAS专属的对象,R运行环境无法直接识别。所以在R代码里调用file.path(bic, "Bankholidays.csv")时,R找不到名为bic的对象,就会抛出这个错误。
解决方案
把SAS中定义的路径传递给R,或者直接在R代码里使用完整文件路径,以下是两种可行的修改方式:
方式1:传递SAS宏变量到R
利用SAS宏解析,把&path的值注入到R代码中,生成R能识别的路径变量:
%let path= C:\Users\b\file_holidays; libname bic "&path.\input"; proc iml; submit / R; bic_path <- "&path./input" /* SAS会自动把&path替换成实际路径 */ bankholidays <- read.csv(file.path(bic_path, "Bankholidays.csv")) endsubmit; quit;
方式2:直接使用完整路径
如果路径固定,也可以直接在R的read.csv里写完整路径(注意R里路径要用正斜杠/或者双反斜杠\\):
%let path= C:\Users\b\file_holidays; libname bic "&path.\input"; proc iml; submit / R; bankholidays <- read.csv("C:/Users/b/file_holidays/input/Bankholidays.csv") endsubmit; quit;
内容的提问来源于stack exchange,提问作者giorgio_b
相关产品推荐
相关产品推荐

