我最近開始研究R編程,並且有一個很微不足道的疑問。我想寫一個函數,它會嘗試加載所需的軟件包,並在未安裝時安裝它。tryCatch()Vs if else
我已經用if if邏輯寫了它。我的問題是,如果我使用tryCatch()會更有效率嗎?除了處理錯誤的能力是否還有其他優勢,因爲在這種情況下處理錯誤並不重要。
下面是我目前使用的代碼:
Inst.Pkgs=function(){
if (!require(tm))
{install.packages("tm")
require(tm)}
if (!require(SnowballC))
{install.packages("SnowballC")
require(SnowballC)}
if (!require(wordcloud))
{install.packages("wordcloud")
require(wordcloud)}
if (!require(RWeka))
{install.packages("RWeka")
require(RWeka)}
if (!require(qdap))
{install.packages("qdap")
require(qdap)}
if (!require(timeDate))
{install.packages("timeDate")
require(timeDate)}
if (!require(googleVis))
{install.packages("googleVis")
require(googleVis)}
if (!require(rCharts))
{
if (!require(downloader))
{install.packages("downloader")
require(downloader)}
download("https://github.com/ramnathv/rCharts/archive/master.tar.gz", "rCharts.tar.gz")
install.packages("rCharts.tar.gz", repos = NULL, type = "source")
require(rCharts)
}
}
'tryCatch' * *用於處理錯誤,所以如果您不需要處理錯誤,那麼您不使用此函數... – Tim
您不應該頻繁地重複相同的語句。這很容易出錯,通常被認爲是不好的做法(稱爲DRY原則)。 – RHertel
@RHertel ...我同意......應該使用循環代替。 –