浏览SAS Hash Object Declare Statement Doc我可以阅读以下关于很少使用的 Keysum 参数的内容:它“指定跟踪所有键的键摘要的变量的名称。键摘要是对键有多少次的计数在 FIND 方法调用中被引用。”
但是,玩弄它,这似乎有点不对劲。考虑下面的小例子。如果文档准确,则 Keysum 在测试数据集中等于 2(2*find() 方法调用)。但是,它等于 10。
data _null_;
declare hash h (suminc : 's', keysum : 'keysum');
h.definekey ('k');
h.definedone ();
k = 1;
s = 2;
keysum = 0;
h.add ();
h.ref ();
h.ref ();
h.find ();
h.find ();
h.output (dataset : 'test');
run;
这是我自己的解释。每次通过 Add()、Ref() 或 Find() 方法引用键时,Keysum 参数标记中指定的变量都会增加 suminc 变量的值。但是,必须至少存在一个 find() 方法调用才能进行增量。否则,Keysum 不会递增(取出上面的两个 find() 方法调用并验证)。
我的解释是简单地玩弄上面的代码..
那么,哪个更离谱,我的解释还是文档?