2017-08-31 89 views
0

我已經無意中將我用不同功能創建的軟件包覆蓋過,保存並關閉了R Studio。現在,我的R軟件包包含一個意外的功能。謝謝,我沒有安裝這個軟件包,所以我仍然在我的電腦中保存了舊的軟件包內容。如何提取R包中使用的函數?

有沒有辦法從安裝的軟件包中提取函數?這是一個長期的功能。不多於一個功能。

而且,不,我沒有備份,至少沒有更新的版本。

+6

我不知道我明白髮生了什麼。但是,如果您有舊版本的軟件包,則可以加載軟件包,然後只需鍵入函數名稱,並將其代碼發送到終端。然後您可以複製並粘貼該代碼。 –

+0

@JohnPaul評論的更好,但'functionBody()'也可以工作(大部分時間)。 – Masoud

+0

當您開始新的R會話時,您可能會自動將所有內容加載到'.RData'文件中。試試'rm(name_of_function)',看看你以後是否可以使用包版本。 –

回答

1

View(package::function)

哪裏package是你提到你已經安裝和function是你正在尋找檢查功能包。

重要的是放棄你通常會有函數參數的圓括號。這將打開檢查功能代碼。

1

您可以通過在控制檯中鍵入它的名稱來查看功能的結構。

> sum 
function (..., na.rm = FALSE) .Primitive("sum") 

要想從包中的功能,你可以使用::操作

> dplyr::coalesce 
function (x, ...) 
{ 
    values <- list(...) 
    for (i in seq_along(values)) { 
     x <- replace_with(x, is.na(x), values[[i]], paste0("Vector ", 
      i)) 
    } 
    x 
} 
<environment: namespace:dplyr> 
相關問題