【发布时间】: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 的某种组合作为答案(因为没有人投票关闭作为基于意见的......)......我同意在紧凑性和清晰度之间进行权衡。在某些情况下,我也喜欢使用独立的包向量。