我正在尝试使用 R 来执行“MAKEMET”文件。我的 R 函数创建输入文件并应该执行输入文件。当我使用 Windows 命令行手动应用该过程时,程序可以正常执行,因此我认为问题不在于我的输入文件或命令的预期格式。但是,当我尝试使用 system() 命令从 R 执行完全相同的命令时,我得到的退出状态为 24,并且程序没有运行。
在命令行执行MAKEMET的命令是:
MAKEMET.exe < file.inp
这是我用来执行的 R 代码:
system(
gsub(
"/",
"\\",
paste0(MAKEMET_exe, " < ", wd, "/", filename, ".inp"),
fixed = TRUE
),
intern = TRUE,
show.output.on.console = TRUE,
invisible = FALSE,
minimized = FALSE
)
gsub(paste0(...)) 命令输出如下所示(我可以毫无问题地复制并粘贴到命令提示符中):
[1] "B:\\Models\\MAKEMET\\MAKEMET.exe < C:\\Documents\\EPA\\Models\\MAKEMET.inp"
可能有用的背景:
当我将命令字符串复制并粘贴到命令窗口中时,我已经“正确”地写入了命令字符串,但是(MAKEMET 是一个 USEPA 程序,可生成气象输入数据,可在此处公开获取:https://gaftp.epa.gov/Air/aqmg/SCRAM/models/screening/aerscreen/makemet_code.zip)
我使用的 15 行输入文件如下所示:
MM_b_1.5_a_0.15_s_1.25.SFC
MM_b_1.5_a_0.15_s_1.25.PFL
0.5
10
Y
36
0
10
250
250
0.15
1.5
1.25
谢谢!