Не удается загрузить функцию `model1` пакета processR в блокноте Jupyter - PullRequest
0 голосов
/ 19 февраля 2020

Я очень новичок во всем программировании на R и пытаюсь следовать этому уроку , где функция model1 используется для нахождения корреляции Эндрю Ф. Хейса между тремя переменными. Как указано в руководстве, у меня установлены пакеты:

  1. install.packages("devtools")
  2. install.packages("processR")
  3. devtools::install_github("markhwhiteii/processr")

Я также следовал за шагами:

set.seed(1839)
var1 <- rnorm(100)
cond <- rbinom(100, 1, .5)
var2 <- var1 * cond + rnorm(100)
df3 <- data.frame(var1, var2, cond)
head(df3)

соответственно. Однако при запуске:

mod1result <- model1(iv = "var1", dv = "var2", mod = "cond", data = df3)

я получаю сообщение об ошибке:

Ошибка в модели 1 (iv = "var1", dv = "var2", mod = "cond" , data = df3): не удалось найти функцию "model1". Traceback:

и запущен

mod1result <- processr::model1(iv = "var1", dv = "var2", mod = "cond", data = df3)

Ошибка в loadNamespace (имя): пакет не называется 'processr' Traceback:

Странно то, что тот же код работал вчера, а теперь нет. Я был бы признателен, если бы вы могли помочь мне понять, что не так и как я могу решить эту проблему.

PS1. Я не уверен, что такое .libPaths(), но по какой-то причине он возвращает два пути на моей ма c:

  • /usr/local/lib/R/3.6/site-library
  • /usr/local/Cellar/r/3.6.2/lib/R/library

означает ли это, что у меня есть две установки R, и это является основной причиной вышеуказанных проблем?

PS2 . ОК. Похоже, это вина Юпитера, поскольку в терминале все работает нормально.

PS3. В терминале работает:

  • sudo r
  • devtools::install_github("markhwhiteii/processr")
  • library(processr) обратите внимание на нижний регистр r в processr

PS4. Я не уверен, что это вина Юпитера.

PS5. Я также пытался установить пакеты на Windows. Это было еще хуже. Я не могу решить проблему:

Ошибка: не удалось установить 'processr' из GitHub: (преобразовано из предупреждения) не удается удалить предыдущую установку пакета "digest"

Я думаю, что ключ к решению этой проблемы - понять, в чем разница между этими пакетами:

  • install.packages("processR")
  • devtools::install_github("markhwhiteii/processr")
  • devtools::install_github("cardiomoon/processR")

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

ОК, после нескольких часов проб и ошибок, я думаю, что у меня есть грязный обходной путь, но не решение!

  • запустить sudo r в одном терминале
  • запустите jupyter notebook в другом и откройте записную книжку R (я полагаю, у вас установлено ядро)
  • теперь вы должны понимать, что devtools::install_github("markhwhiteii/processr") и install.packages("processR") - это два разных пакета, и вы дали установить и каждый раз, когда вы перезапускаете свое ядро ​​в Jupyter Notebook

  • устанавливайте devtools::install_github("markhwhiteii/processr") сначала в терминале R

  • теперь на стороне Jupyter вы сможете на library(processr) и запустите processr::model1
  • , затем установите install.packages("processR") на терминале R
  • , теперь импортируйте library(processR)
  • , теперь вы сможете запустить такие функции, как pmacroModel et c

В основном вам нужны и processr и processR!

BTW, такая же проблема связана с клеммой R. Вы должны запустить как sudo и выполнить вышеописанные шаги, чтобы все заработало!

0 голосов
/ 19 февраля 2020

На странице руководства, на которую вы ссылаетесь, установите processr (не processR) следующим образом:

# Run this if devtools isn't installed.
# install.packages("devtools")

# Run to install "processr"
devtools::install_github("markhwhiteii/processr")

После успешного завершения будет определено processr::model1.

При запуске кода в этом посте он выдает результат:

set.seed(1839)
var1 <- rnorm(100)
cond <- rbinom(100, 1, .5)
var2 <- var1 * cond + rnorm(100)
df3 <- data.frame(var1, var2, cond)
head(df3)

mod1result <- processr::model1(iv = "var1", dv = "var2", mod = "cond", data = df3)

mod1result
## # A tibble: 6 x 5
##   term          estimate std.error statistic       p.value
##   <chr>            <dbl>     <dbl>     <dbl>         <dbl>
## 1 intercept       0.133      0.146     0.916 0.362        
## 2 var1            0.0696     0.156     0.445 0.657        
## 3 cond           -0.173      0.200    -0.865 0.389        
## 4 interaction     0.854      0.213     4.01  0.000118     
## 5 when cond = 0   0.0696     0.156     0.445 0.657        
## 6 when cond = 1   0.924      0.144     6.40  0.00000000577

...