【问题标题】:What are the advantages of loading all of my packages using lapply? [closed]使用 lapply 加载我的所有包有什么好处? [关闭]
【发布时间】:2018-04-22 09:43:58
【问题描述】:

这是我的第一个问题,如果这不是完全合适的,请道歉。我的一位同事最近给我发了一个脚本,她使用lapply 加载了她的所有包,而不是重复调用library,例如

packages_list <- c("dplyr", "ggplot2")

lapply(packages_list, library, character.only = TRUE)

相反,我通常是这样做的:

library(dplyr)
library(ggplot2)

以某种方式使用lapply 计算速度更快吗?我可以看到,对于需要大量包的脚本,使用 lapply 可能会使我免于重复输入 library,但使用自动完成功能,这似乎不是一个巨大的好处。

我的教职员工中的大多数人都是 R 的初学者(我们是生物学家),我的许多学生甚至不知道 apply 是如何工作的...我认为在脚本开头使用 lapply完全新手可能会感到困惑。我只是好奇你们那里的专家编码员是否可以提供更多启发性的输入。谢谢!

【问题讨论】:

  • 使用 lapply 是 100% 的口味问题,如果您在脚本中做任何有趣的事情而不是运行单独的库语句,则不会提供关于脚本速度的任何合理回报。
  • 我怀疑你提到了问题中唯一的优势——对于大量包来说更紧凑。
  • 我认为这是一个可能会被关闭的意见问题,但我的意见是尽可能避免额外的包裹!
  • 我同意这本质上是一个风格问题,我个人不太喜欢它(使用 lapply 加载包)。
  • 有人应该发布这些 cmets 的某种组合作为答案(因为没有人投票关闭作为基于意见的......)......我同意在紧凑性和清晰度之间进行权衡。在某些情况下,我也喜欢使用独立的包向量。

标签: r lapply


【解决方案1】:

使用没有速度优势:

packages_list <- c("dplyr", "ggplot2")
lapply(packages_list, library, character.only = TRUE)

...结束:

library( dplyr)
library( ggplot2 )

在包的数量超过 8 个之前,它也不太紧凑。 您应该重视@BenBolker,他是一位非常有价值的贡献者,不仅是 SO,还有 R-help 和 R-SIG-ME 邮件列表。 (后续有更多意见)如果需要大量包,首选方法是在文本编辑器或支持复制 library( ) 的 IDE 中编写脚本。

【讨论】:

    猜你喜欢
    • 2014-11-14
    • 2011-04-26
    • 1970-01-01
    • 2015-03-24
    • 2012-09-04
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多