gpt4 book ai didi

r - 如何将 %LET 参数从 R 传递到 sas 脚本?

转载 作者:行者123 更新时间:2023-12-05 08:41:11 25 4
gpt4 key购买 nike

我有一个 R 脚本,可以让我在 SAS 中运行一个宏,就像这样(灵感来自 here ):

setwd("C:/myplace")
sas_script <- "MyScript.sas"
sas_log <- tempfile()
sas_out <- tempfile()


cmd <- sprintf(
'sas.exe -nosplash -icon -sysin "%s" -log "%s" -print "%s"',
sas_script, sas_log, sas_out
)

return_code <- system(cmd) # Runs sas and saves the return code
print(return_code)

但我想将一个参数传递给宏,这样我就可以运行它,例如从 2010 年到 2018 年的所有年份。我的 SAS 宏(调用其他几个宏)看起来像这样:

options nocenter nodate nonumber mprint;

%let sti=C:\Mypath\;
%include "&sti.macro1.sas" ;

%let aar=2018;

%macro1(aar=&aar);

因此,我不想在 sas 中使用 %let aar=2018;,而是在 R 中使用 for(aar in 2010:2018){ code } .

有什么建议吗?

最佳答案

您可以在 SAS 命令行上使用 -SET 选项将参数传递到 SAS。然后使用 %SYSGET 宏在您的程序中检索这些值。有关进一步的讨论和示例,请参阅文章 "How to pass parameters to a SAS program."

关于r - 如何将 %LET 参数从 R 传递到 sas 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51721473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com