从GitHub直接运行含%macro的SAS文件报错求助
Problem Analysis
你遇到的核心问题是下载的不是纯SAS宏代码,而是GitHub的网页HTML内容。你使用的URL是GitHub文件的展示页面(带blob的地址),这个地址返回的是包含导航栏、按钮等元素的完整网页,而不是你需要的SAS宏脚本。当你用%Include加载这个HTML内容时,SAS会尝试解析HTML标签(比如<!DOCTYPE html>、<li>),这完全不符合SAS语法,所以才会出现大量符号引用未解析、语句无效的错误。
Solution
要解决这个问题,你需要使用GitHub文件的原始内容URL,这个地址会直接返回纯文本的SAS代码。
Step 1 获取原始文件URL
打开目标文件的GitHub页面,点击右上角的「Raw」按钮(在「Blame」「History」按钮旁边),复制弹出页面的URL。对于你要的文件,这个URL是:https://raw.githubusercontent.com/SchmidtPaul/HeritabilityScripts/master/SAS/MACRO%20H2_Piepho.sas
Step 2 修改并运行代码
将你的proc http代码中的URL替换为上述原始地址,修正后的完整代码如下:
filename _inbox "%sysfunc(getoption(work))/Macro H2_Piepho.sas"; proc http method="get" url="https://raw.githubusercontent.com/SchmidtPaul/HeritabilityScripts/master/SAS/MACRO%20H2_Piepho.sas" out=_inbox; run; %Include _inbox; filename _inbox clear;
Explanation
- GitHub的
blob地址(比如你最初用的https://github.com/SchmidtPaul/HeritabilityScripts/blob/master/...)是用于网页展示的,返回的是HTML格式的页面内容,包含大量非SAS代码的元素。 - 而
raw.githubusercontent.com开头的地址是GitHub提供的原始文件访问地址,会直接返回文件的纯文本内容,这样SAS就能正确解析并加载宏代码了。
内容的提问来源于stack exchange,提问作者Paul Schmidt
相关产品推荐
相关产品推荐

