我正在尝试为先知运行一个教程,它在Jupyter笔记本中使用R magic。以下代码:
%%R
library(prophet)
df <- read.csv('../examples/example_wp_peyton_manning.csv')
df$y <- log(df$y)
m <- prophet(df)
future <- make_future_dataframe(m, periods=366)
返回:
Error in library(prophet) : there is no package called ‘prophet’
然后,在我的iPython笔记本中运行:
from rpy2.robjects.packages import importr
utils = importr('utils')
utils.install_packages('prophet')
返回此内容:
--- Please select a CRAN mirror for use in this session ---
Secure CRAN mirrors
1: 0-Cloud [https] 2: Australia (Canberra) [https]
3: Australia (Melbourne) [https] 4: Australia (Perth) [https]
5: Austria [https] 6: Belgium (Ghent) [https]
7: Brazil (RJ) [https] 8: Brazil (SP 1) [https]
9: Bulgaria [https] 10: Chile 1 [https]
11: China (Lanzhou) [https] 12: Colombia (Cali) [https]
13: Czech Republic [https] 14: Denmark [https]
15: France (Lyon 1) [https] 16: France (Lyon 2) [https]
17: France (Marseille) [https] 18: France (Montpellier) [https]
19: France (Paris 2) [https] 20: Germany (Münster) [https]
21: Iceland [https] 22: Indonesia (Jakarta) [https]
23: Ireland [https] 24: Italy (Padua) [https]
25: Japan (Tokyo) [https] 26: Malaysia [https]
27: Mexico (Mexico City) [https] 28: Norway [https]
29: Philippines [https] 30: Russia (Moscow) [https]
31: Spain (A Coruña) [https] 32: Spain (Madrid) [https]
33: Sweden [https] 34: Switzerland [https]
35: UK (Bristol) [https] 36: UK (Cambridge) [https]
37: UK (London 1) [https] 38: USA (CA 1) [https]
39: USA (KS) [https] 40: USA (MI 1) [https]
41: USA (TN) [https] 42: USA (TX 1) [https]
43: USA (TX 2) [https] 44: (other mirrors)
显示一个输入框,我做出的任何选择都会导致:
rpy2.rinterface.NULL
我有RStudio,并且先知在R Studio中正在运行w / o问题。这告诉我,我有另一个R内核在某处运行,链接到Anaconda中的环境,或者其他一些配置错误。
有没有办法解决这个问题所以我可以使用R Studio中的内核运行R或强制当前的R内核安装先知?
如何知道R magic在这个Jupyter笔记本中使用的R内核的位置?
我正在使用mac,我可能会有一些交叉链接的文件等等。(我的Jupyter笔记本显示6个内核,当我真的有3个。它正在重复我有两次)。
由于
答案 0 :(得分:1)
你可能有2个版本的R.当你从Anaconda安装R内核时,无论你在RStudio中拥有什么,它都会安装自己的版本。这是你应该做的。从Jupyter笔记本中,在单元格中运行以下命令:
%load_ext rpy2.ipython
然后
%%R
.libPaths()
应该返回这样的内容:
[1] "/Users/user/anaconda/lib/R/library"
现在转到RStudio并运行同一行:
.libPaths()
它可能会返回如下内容:
[1] "/Users/user/Library/R/3.2/library"
[2] "/Library/Frameworks/R.framework/Versions/3.2/Resources/library"
在这个例子中,你可以看到一个R在anaconda中,另一个是独立的R.你的RStudio中的那个,你正确加载Prophet的那个是独立的。
最好的解决方案是让RStudio使用与Conda使用的版本相同的版本。要做到这一点,有很多方法可以在两个版本之间切换,但最好的方法是使用一个名为Rswitch的简单实用程序,您可以从here下载。
RSwitch会检测您计算机中的所有R版本,并允许您的RStudio在您拥有的不同版本的R之间切换。
同样,我的建议是切换到Conda正在使用的R版本,并从RStudio安装您的软件包以避免从Jupyter笔记本中执行此操作,这可能会显示错误,例如
你指出了。希望这有效。rpy2.rinterface.NULL
答案 1 :(得分:0)
问题中有很多问题。回答其中一个:
如何知道R magic在这个Jupyter笔记本中使用的R内核的位置?
在Jupyter,做:
%run -m rpy2.situation