有些情况下,magrittr管道(%>%)的行为不像预期的那样,因此调试、生成reprex、讨论并最终重构需要一些时间。
例如。
问题
为了主动地教育自己,是否有一些已知的base (也许是整洁的)R函数的编译,而管道不像人们所期望的那样运行呢?
当前解决方案
尽管这些来源有些不同。
是否有一种方法来生成一个列表,或者在某个地方维护一个列表,比如在文档中、在github上,或者在其他地方,以便定期对其进行审查?
发布于 2020-02-26 11:54:59
没有一种方法可以自动生成这样的列表,因为您实际上需要知道函数的语义,才能知道为什么(以及是否)在管道内工作。
作为一种启发式,任何接受envir参数并设置为默认参数的函数(如ls、bit和get、exists等)。会用管子表现得很奇怪。
也就是说,如果你了解R中的函数计算是如何工作的,那么对于大多数函数来说,它们是否会起作用通常是相当明显的。因此,我建议阅读R模型的评价。特别是,阅读哈德利韦翰的https://adv-r.hadley.nz/中的相关章节
还有,潜在的,部分
公平地说,这是大量的材料。但是,对R中的功能评估和作用域(环境)如何工作有一个很好的掌握对于对R有一个坚实的理解是至关重要的。元编程更高级,更重要的是要意识到它的存在,而不是立即对它有一个坚实的理解。
https://stackoverflow.com/questions/60412665
复制相似问题