我需要一些关于最佳实践的帮助
我有一个函数fc_mean_wages(),它计算一个值(一个平均工资)并执行这些任务(粗野):
我必须和成千上万的工人一起完成这项任务。所以我可以做两件事
wages %>% group_by (worker) %>% mutate(., index_tables, wages, activity_means_table))我选择A,因为函数需要计算相同工资数据库的中位数,并且不知道矢量化是否工作良好,当您必须把它作为输入大表时。我的A解决方案不是一个很好的功能,它更像是一个简单的过程,而不是一个功能形式。
可以尝试将此任务向量化吗?是否有更好的表现,多次调用工资表,并按工人过滤它的工人?
发布于 2019-03-15 12:43:26
显然,对于一个函数来说,这是一个非常复杂的任务。
我建议你把它分成更简单的部分。
即便如此,您也无法避免读取整个表来执行您提到的查找(查找雇主薪资中的媒体)。解决方案是分析这些任务中哪些是不稳定的,哪些是不稳定的。
例如,雇主的工资可能每月变化一次。然后只运行一次查找过程;不需要是函数。其他如筛选选定员工的薪资可能需要按需进行,因此可以将其功能化。
最后,使用profvis和microbenchmark包来记录改进和记录复杂的过程。将运行中的进程从核心中分离出来;以后可以用另一种语言代替,可以委托给IT团队,或者通过改进数据库设计而变得过时,或者因为数据质量更高。
https://stackoverflow.com/questions/55124211
复制相似问题