Почему это происходит?R применять и библиотечные функции - PullRequest
0 голосов
/ 22 февраля 2019

Кто-нибудь знает, почему я не получаю вывод от этой команды:

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"  

1 Ответ

0 голосов
/ 22 февраля 2019

Это потому, что library() по умолчанию невидимо возвращает значение, возвращаемое .packages(), 1 , поэтому, если вы позвоните library(), вы ничего не увидите.Однако sapply() заметно возвращает независимо от того, возвращаемое значение вызовов.Рассмотрим пример:

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

1 С help("library") (спасибо @joran за то, что это упоминалось в документации):

Обычнобиблиотека возвращает (невидимо) список прикрепленных пакетов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...