首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以某些表为参数的函数的矢量化

以某些表为参数的函数的矢量化
EN

Stack Overflow用户
提问于 2019-03-12 14:41:28
回答 1查看 28关注 0票数 0

我需要一些关于最佳实践的帮助

我有一个函数fc_mean_wages(),它计算一个值(一个平均工资)并执行这些任务(粗野):

  1. 作为参数获取工人的月工资(less m或更少)
  2. 如果我没有m的工资,我会寻找得到类似替代的方法: 2a。获取来自同一雇主的其他工人的中位数,2b。否则,我得到了全国平均水平的活动。
  3. 得到一张m指数表,以调整工资以适应通货膨胀。
  4. 我计算m所选值的加权平均值。

我必须和成千上万的工人一起完成这项任务。所以我可以做两件事

  1. 将完整的工资数据库作为参数,通过一个函数调用计算所有这些数据。
  2. 把一个工人的工资作为参数,用矢量化的方式计算(例如:wages %>% group_by (worker) %>% mutate(., index_tables, wages, activity_means_table))

我选择A,因为函数需要计算相同工资数据库的中位数,并且不知道矢量化是否工作良好,当您必须把它作为输入大表时。我的A解决方案不是一个很好的功能,它更像是一个简单的过程,而不是一个功能形式。

可以尝试将此任务向量化吗?是否有更好的表现,多次调用工资表,并按工人过滤它的工人?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-15 12:43:26

显然,对于一个函数来说,这是一个非常复杂的任务。

我建议你把它分成更简单的部分。

即便如此,您也无法避免读取整个表来执行您提到的查找(查找雇主薪资中的媒体)。解决方案是分析这些任务中哪些是不稳定的,哪些是不稳定的。

例如,雇主的工资可能每月变化一次。然后只运行一次查找过程;不需要是函数。其他如筛选选定员工的薪资可能需要按需进行,因此可以将其功能化。

最后,使用profvismicrobenchmark包来记录改进和记录复杂的过程。将运行中的进程从核心中分离出来;以后可以用另一种语言代替,可以委托给IT团队,或者通过改进数据库设计而变得过时,或者因为数据质量更高。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55124211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档