从所有格式创建查找表

时间:2018-01-16 09:18:15

标签: sas

我想将所有可用的export class State { constructor(public name: string, public population: string, public flag: string) { } } export class AutocompleteOverviewComponent implements OnInit { stateCtrl: FormControl; filteredStates: Observable<any[]>; temp:string; states: State[] = [ { name: 'Arkansas', population: '2.978M', // https://commons.wikimedia.org/wiki/File:Flag_of_Arkansas.svg flag: 'https://upload.wikimedia.org/wikipedia/commons/9/9d/Flag_of_Arkansas.svg' }, { name: 'California', population: '39.14M', // https://commons.wikimedia.org/wiki/File:Flag_of_California.svg flag: 'https://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_California.svg' }, { name: 'Florida', population: '20.27M', // https://commons.wikimedia.org/wiki/File:Flag_of_Florida.svg flag: 'https://upload.wikimedia.org/wikipedia/commons/f/f7/Flag_of_Florida.svg' }, { name: 'Texas', population: '27.47M', // https://commons.wikimedia.org/wiki/File:Flag_of_Texas.svg flag: 'https://upload.wikimedia.org/wikipedia/commons/f/f7/Flag_of_Texas.svg' } ]; constructor() { this.stateCtrl = new FormControl(); } ngOnInit() { this.filteredStates = this.stateCtrl.valueChanges .pipe( startWith(''), map(state => state ? this.filterStates(state) : this.states.slice(), ) ); } filterStates(name1:string) { return this.states.filter(state => state.name.toLowerCase().indexOf(name1.toLowerCase()) === 0); } 导出到一个包含user defined formatsformatvalue列的查找表中(以便我可以使用它操纵labelR)中的数据。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:2)

您可以使用CNTLOUT method on PROC FORMAT:

导出SAS格式目录的内容(通常为formats.sas7bcat
proc format lib=mylib cntlout=myformatds;
quit;

这会将库mylib中存储的默认格式目录作为formats.sas7bcat,并将其导出到myformatds库中的数据集work

答案 1 :(得分:0)

正如评论中指出的@ user667489一样,答案是PROC FORMAT使用CNTLOUT选项。

指令的一般格式为:

PROC FORMAT
LIBRARY=lib_name CNTLOUT=created_table;
RUN;

必须指定库,但要找出哪个库是相关的,可以查看SASHELP.VFORMAT。 然后,可以创建不同的表并将它们连接起来。

在我的情况下,所有用户定义的格式都在名为LIBRARY的库中,我不需要所有列,所以我的解决方案是:

PROC FORMAT
LIBRARY=LIBRARY CNTLOUT=FORMAT_LOOKUP (KEEP=FMTNAME START END LABEL);
RUN;