Загрузка пакета R внутри сценария R - PullRequest
1 голос
/ 05 мая 2020

Я пробовал несколькими способами загрузить несколько определенных c пакетов в свой script.R, чтобы запустить сценарий в терминале, набрав ./Rscript script.R. Нет проблем со скриптом, но я получаю сообщение об ошибке, когда хочу загрузить пакет e, g tidyverse.

Error: package or namespace load failed for ‘tidyverse’ in rbind(info, getNamespaceInfo(env, "S3methods")):
number of columns of matrices must match (see arg 2)
In addition: Warning message:
package ‘tidyverse’ was built under R version 3.6.0

На основе этой ссылки Установка пакета в R внутри скрипта Я попытался найти расположение библиотеки, набрав .libPaths() в Rstudio, затем я указал путь для загрузки пакета внутри script.R, набрав library(tidyverse,lib.loc="/Library/Frameworks/R.framework/Versions/3.6/Resources/library")

Снова я получаю ту же ошибку . Не могли бы вы указать, в чем ошибка? Спасибо

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Обратите внимание, что не рекомендуется использовать require() для загрузки пакетов. Если использование library() не работает, нет никаких причин, по которым require() будет работать.

Судя по вашему вопросу, похоже, что вы используете определенный двоичный файл Rscript в своей текущей папке (./Rscript), это может не использовать ту же версию R, что и RStudio.

Вы можете попробовать запустить

Rscript -e "library(tidyverse)"

, чтобы посмотреть, сможете ли вы загрузить tidyverse. Обратите внимание, что здесь я использую команду Rscript вместо ./Rscript. Это должно указывать на вашу последнюю установленную версию R и ту же версию, которую использует RStudio.

Если ошибка не исчезнет, ​​вы можете просто попробовать переустановить tidyverse, используя

Rscript -e "install.packages('tidyverse')"
0 голосов
/ 05 мая 2020

Решение загружает пакет по require()

require(dplyr)
...