我花了一些时间来改善一些基于tidyverse的数据集分析代码的性能,该代码可用于100-500列和250,000行数据之间的数据集(您需要的列数取决于您要执行的任务)表演)。
代码从CSV文件中读取数据,然后从CSV中整理一些早期数据-例如将记录为“ Y”,“ N”,“”的布尔值固定为布尔值而不是因数。
最初,无论任务如何,我们都会导入所有列-我一直在进行的工作已将我们转移到选择性列导入-跳过了某些任务可能不需要的工作负荷,并导致了- 3性能提升。当然,这会使数据整理更加复杂。
我一直使用mutate和一系列表达式来整理数据。
但是我想知道在什么时候将相同的表达式组合在一起以执行mutate_at(例如,将使用“ Y”,“ N”,“ NA”的所有布尔列一起使用)并执行其余列的后续突变;而不是每行都有一个函数来执行变异?两者之间是否存在性能差异,因此值得使代码复杂化?
很高兴看到这里会有用例的变化-只是想知道在我尝试或花时间建立一些测试示例来检查它是否值得之前,是否有人对一些通用规则有所了解。