我在SAS收到了一个数据集和格式目录,我试图让它打开,但不知怎的,我没有正确应用格式目录。这是我用过的代码。我已经研究了SAS网站,我认为我有正确的步骤来调用目录,但它没有工作。我确定这是我制作的一个基本错误。
var data = [{
"country": "Abkhazia",
"1995": null,
"1996": null,
"1997": null,
"1998": null,
"1999": null,
"2000": null
}, {
"country": "Afghanistan",
"1995": 49.4,
"1996": 49.7,
"1997": 49.5,
"1998": 48.6,
"1999": 50,
"2000": 50.1,
"2001": 50.4
}, {
"country": "Angola",
"1995": 59.4,
"1996": 59.7,
"1997": 39.5,
"1998": 58.6,
"1999": 60,
"2000": 60.1,
"2001": 60.4
}];
function makeScatter(country) {
var filteredData = data.filter(d => d.country === country);
countryData = [];
for (var prop in filteredData[0]) {
countryData.push({
year: +prop,
expect: filteredData[0][prop]
})
}
console.log(countryData)
}
makeScatter("Afghanistan")
对于每个变量,我在日志中收到以下错误:
libname in 'U:/';
libname library 'U:/';
Options fmtsearch = (library.formats_raw);
data ae;
set in.ae;
format
aeactae $AEMGMT.
AEACTSM $ACTION.
AEDVIS $VISIT.
AEENDT DATE11.
AEINT $AEINT.
AEIRLOC $INJSITE.
AEIRMEAS $YESNO.
AEIRTERM $ISR.
AEIRVIS $VISIT.
AEIRYN $YESNO.
AEOUT $OUTCOME.
aerel $aerel.
AESER $YESNO.
AESTDT DATE11.
AEYN $YESNO.
EVTDT DATE11.
LASTUPD EURDFDT20.;
run;
答案 0 :(得分:0)
编辑:鉴于新信息,答案会发生变化。我把剩下的留给它以防它有用。
您有格式数据集,而不是格式目录。你需要运行它:
proc format cntlin=in.formats_raw;
quit;
导入格式。这假设它当然是正确创建的 - 它至少应该有fmtname
,start
,label
,也可能还有其他一些变量(type
,{{1} },hlo
很常见。
这会将保存到end
数据集的格式导入工作环境。如果要创建永久目录,则应在SAS
语句中指定lib=in
或存储在何处。
旧答案:
你通常做得对,不过你正在做一些你不需要的事情。
应避免使用 proc format
libname。这是人们使用的不知道如何正确使用格式的东西,但它确实不是一个好主意,因为它在格式搜索中特别偏好,如果你有多个格式搜索可能会有问题。 library
和LIBRARY
自动位于fmtsearch列表中,除非明确列出,否则将被赋予优先级。但是,当格式目录不是WORK
时,这实际上对您没有帮助。
在您的情况下,您应该只定义一次(formats.sas7bcat
)然后执行此操作:
in
您将libname in 'U:/';
Options fmtsearch = (in.formats_raw work);
放在那里以确保您的格式目录优先于它。
如果您在该文件夹中有文件work
,那么它应该可以工作。如果不这样做,那么您可能还有其他事情(如果文件是formats_raw.sas7bcat
,您可能会有cntlin
导入的文件。)
这是一个简单的例子:
.sas7bdat
将libname temp 'c:\temp';
proc format lib=temp.formats_raw;
value YNF
1='Yes'
2='No'
;
quit;
options fmtsearch=(temp.formats_raw work);
data test;
x=1;
format x YNF.;
put x= ynf.;
run;
更改为fmtsearch
,您会看到它失败(因为(temp work)
不存在)。