View 如何理解sas视图的动态特性

View 如何理解sas视图的动态特性,view,sas,View,Sas,或者,在实践中,在proc步骤中处理数据时,动态特性有何帮助 我找到了这个链接。但是它没有多大帮助。“数据文件是静态的;SAS视图是动态的…”-这里的动态方面意味着,IMHO,如果基础数据成员(视图所基于的)发生更改,视图(它返回的数据)会自动更新,它会返回新的/最新的数据,而无需“刷新”。这仅仅是因为视图不包含/存储数据,就像每次访问视图时“运行”的已编译数据步骤。 文档中的实际句子有点“有希望”,但一旦您理解了视图的本质,后面就没有什么特别之处了 我想说,该语句也可以用作一个小小的警告——如

或者,在实践中,在
proc
步骤中处理数据时,动态特性有何帮助

我找到了这个链接。但是它没有多大帮助。

“数据文件是静态的;SAS视图是动态的…”-这里的动态方面意味着,IMHO,如果基础数据成员(视图所基于的)发生更改,视图(它返回的数据)会自动更新,它会返回新的/最新的数据,而无需“刷新”。这仅仅是因为视图不包含/存储数据,就像每次访问视图时“运行”的已编译数据步骤。 文档中的实际句子有点“有希望”,但一旦您理解了视图的本质,后面就没有什么特别之处了

我想说,该语句也可以用作一个小小的警告——如果您更改/松动/损坏底层数据,视图将不再返回原始数据——动态也可能不太安全


请注意,如果基础结构发生更改(添加/删除/修改列属性),您需要重新创建视图(数据步骤视图和SQL视图),以保持视图有效并在基础结构中应用更改。

它允许您避免每次编写代码来处理数据

随机示例:如果我的IT部门选择将我的数据存储在每月一次且遵循命名约定的文件中,例如:

Y2014_M01 Y2014_M02

理论上我可以写一个

data Y2014/view=Y2014;
set Y2014:;
run;
然后,当我需要处理文件时,我可以简单地引用Y2014作为我的数据集。当它每月更新时,我就不需要更新我的代码了。有点做作的例子,但希望能有助于解释

data class_F;
set sashelp.class;
where sex='F';
run;

data class_M;
set sashelp.class;
where sex='M';
run;

data class/view=class;
    set class:;
run;

proc means data=class;
run;