首页 > 解决方案 > 为什么会这样?R应用和库函数

问题描述

有谁知道为什么我没有收到此命令的输出:

library("dplyr", character = T)

然而,我收到以下命令的输出:

sapply("dplyr", library, character = T)

?

输出如下所示:

     dplyr      
[1,] "dplyr"    
[2,] "stats"    
[3,] "graphics" 
[4,] "grDevices"
[5,] "utils"    
[6,] "datasets" 
[7,] "methods"  
[8,] "base"  

标签: r

解决方案


这是因为library()默认情况下不可见地返回.packages(), 1返回的值,所以如果你调用library(),你什么也看不到。但是,无论调用的返回值是什么,sapply() 可见地返回。考虑一个例子:

f <- function(x) invisible(1)
f(1)
sapply(1, f)
# [1] 1

1来自help("library")(感谢@joran 指出文档中提到了这一点):

通常库返回(不可见)附加包的列表


推荐阅读