2017-08-31 62 views
0

我在使用dplyr的許多函數中使用了很多函數,我將它們放在一個包中。 我不應該使用library(dplyr)有史以來,所以我試圖加倍冒號的一切。然而,我似乎無法得到正確的dplyr版本。當我這樣做,例如:如何在一個函數中使用dplyr使用::

SurveillanceLastToNow <- function(x, A_thing, Date) { 
    x %>% dplyr::arrange_(A_thing, Date) %>% 
    dplyr::group_by_(A_thing) %>% dplyr::mutate(diffDate = difftime(Sys.Date(), 
     last(Date), units = "days")) 
} 

我得到的錯誤:

could not find function "%>%" 

所以我的問題是

  1. 我需要magrittr::%>%一路過關斬將....?當然不是
  2. 鑑於我使用了多少dplyr,包括其大部分功能,我如何在安裝軟件包時加載整個事情而不是::到處

基本上我正在尋找使用所有的dplyr功能在我的包最懶的方式

+0

您可以將函數('dplyr :: mutate','magrittr ::%>%'等)導入到您的包中,然後在代碼中通常不使用'package ::'來使用它們。 –

回答

0

您可以簡單地把dplyr進入「取決於」你的包描述文件的字段,或者如果您不想將包附加到搜索路徑中,您可以將其放入描述的「輸入」中,但在名稱空間文件中添加一行import(dplyr)

+0

也許我很笨,但是當我運行文檔(「MyPackage」)時,導入從NAMESPACE中消失。它何去何從,我每次重新運行文檔功能時都必須重新添加? –

+1

所以如果你使用的是roxygen,那麼你需要在你的一個R文件中添加一行'#'@import dplyr' – platypus