【发布时间】:2020-09-11 12:36:24
【问题描述】:
映射值首选哪个:重用映射函数或构建引用表进行查找?
这是一个非常笼统的高级问题,我相信大部分与语言无关。例如,我将使用SAS,但我也想知道R 和python 中的人们对此有何看法。
我所在的团队喜欢使用映射函数来获取输入并生成一些输出,通常以一对一的方式。例如,这里有一些修改过的 SAS 代码,显示了我的团队通常做的事情:
proc fcmp;
function mapFunction($ input);
output = .;
if input= "Day zero" then output= 0;
else if input = "Day one" then output = 1;
else if input = "Day two" then output = 2;
return(output);
endsub;
run;
当需要进行映射时,团队将在多个其他程序中使用mapFunction。
这违背了我的直觉。我的直觉是使用一次映射函数来生成一组键:值对或字典或两列表,然后使用查找/索引/加入/合并操作以引用表。
我很难解释为什么这是我的直觉,但确实如此。 感觉最好有一个参考表而不是重复调用自定义函数。但是,我不相信自己的感觉,我想听听其他人的意见,看看我是否可以将一种技术合理化。
有人可以提供论据/反论据来支持一种技术吗?
谢谢!
【问题讨论】:
-
如果值的数量是 low 并且 stable 使用 CASE 实现 SQL UDF 是个好主意,if DBMS 无需额外开销即可处理该问题,即只需将函数调用替换为 CASE 表达式。
标签: python sql r sas database-optimization