為什么不需要使用包向量?還有一種方法可以為 install.package 和 BiocManager 拆分 pkg 嗎?因此,如果使用 install.package 無法安裝軟體包,請檢查 BiocManager?
錯誤:[1]“stringr”加載所需的包:i print.default(“嘗試安裝”,i)中的錯誤:無效的列印數字-2147483648另外:警告訊息:1:在庫中(包,lib.loc = lib.loc,character.only = TRUE,logical.return = TRUE,:沒有名為“i”的包 2:在 print.default("trying to install", i) 中:強制引入的 NA
pkg <- c("stringr", "openxlsx")
for (i in pkg){
print(i)
if(require(i)){
print(i, "is loaded correctly")
} else{
print("trying to install", i)
install.packages(i)
if(require(i)){
print(i, "installed and loaded")
} else{
stop("could not install", i)
}
}
}
uj5u.com熱心網友回復:
該回圈中至少有 3 個錯誤。for首先,第一個缺少的論點require,
...然后未能將character.only引數設定為requireTRUE 以便i可以評估而不是作為包名稱,(請參閱?require引數部分)
...最后,未能在print呼叫中加入所需的字符值paste。(參見?print.default的引數部分。print 函式只列印它的第一個引數。它的第二個引數是位數,如控制臺錯誤訊息所述。)
pkg <- c("stringr", "openxlsx")
for (i in pkg){
print(i)
if(require(i, character.only=TRUE)){
print(paste(i, "is loaded correctly"))
} else{
print(paste("trying to install", i))
install.packages(i)
if(require(i, character.only=TRUE)){
print(paste(i, "installed and loaded"))
} else{
stop(paste("could not install", i))
}
}
}
我確實得到:“警告訊息:在庫中(包,lib.loc = lib.loc,character.only = TRUE,logical.return = TRUE,:在第一次運行該回圈后沒有名為'openxlsx'的包”我不明白(因為[1] "openxlsx installed and loaded"列印了訊息,并且包確實已安裝并且可以加載。我猜它與在函式中完成的這些活動有關,并且環境有些不匹配???當我洗掉 pkg:openxlsx 并重新運行我的代碼時,我沒有收到警告訊息。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/482195.html
上一篇:R中聚合資料幀的回圈
下一篇:如何讓打字機回圈?[復制]
