python 运行r语言
尽管我很喜欢R,但很显然Python还是一种很棒的语言-既适用于数据科学又适用于通用计算。 R用户想要在Python中做一些事情可能有充分的理由。 也许这是一个很棒的库,还没有R等效项。 或者您要访问的API带有Python中的示例代码,但没有R。
借助R Reticulate软件包 ,您可以在R脚本中直接运行Python代码,并在Python和R之间来回传递数据。
除了网状结构,您还需要在系统上安装Python。 您还需要Python代码所依赖的任何Python模块,程序包和文件。
如果您想继续,请使用install.packages("reticulate")
和library(reticulate)
安装并加载网状library(reticulate)
。
为简单起见,让我们从仅两行Python代码开始,以导入NumPy软件包以进行基本的科学计算,并创建一个由四个数字组成的数组。 Python代码如下所示:
import numpy as np
my_python_array = np.array([2,4,6,8])
这是在R脚本中正确执行此操作的一种方法:
py_run_string("import numpy as np")
py_run_string("my_python_array = np.array([2,4,6,8])")
py_run_string()
函数执行括号和引号内的所有Python代码。
如果您在R中运行该代码,则看起来什么也没发生。 RStudio环境窗格中未显示任何内容,并且未返回任何值。 如果在R中运行print(my_python_array)
,则会收到一个错误,指出my_python_array
不存在。
但是,如果您在py_run_string()
函数中运行Python打印命令,例如
py_run_string("for item in my_python_array: print(item)")
您应该会看到结果。
但是,如果您有多行代码,那么逐行运行Python代码将很烦人。 因此,还有其他几种方法可以在R中运行Python并生成网格。
一种是将所有Python代码放入常规的.py文件中,并使用py_run_file()
函数。 我喜欢的另一种方法是使用R Markdown文档。
R Markdown使您可以在单个文档中组合文本,代码,代码结果和可视化。 您可以通过选择“文件”>“新建文件”>“ R Markdown”在RStudio中创建一个新的R Markdown文档。
代码块以三个反引号( ```
)开始,以三个反引号结束,并且在RStudio中默认情况下它们具有灰色背景。
第一个块用于R代码-您可以在左括号后的r
看到它。 它加载了网状包,然后指定要使用的Python版本。 (如果未指定,它将使用您的系统默认值。)
```{r setup, include=FALSE, echo=TRUE}
library(reticulate)
use_python("/usr/bin/python")
```
下面的第二个块是针对Python代码的。 您可以像在Python文件中一样键入Python。 下面的代码导入NumPy,创建一个数组,然后打印该数组。
```{python}
import numpy as np
my_python_array = np.array([2,4,6,8])
for item in my_python_array:
print(item)
```
这是很酷的部分:您可以在R中使用该数组,方法是将其称为py$my_python_array
(通常为py$objectname
)。
在下一个代码块中,我将该Python数组存储在一个名为my_r_array
的R变量中。 然后,我检查该数组的类。
```{r}
my_r_array <- py$my_python_array
class(my_r_array)
``
这是一个“数组”类,这与您对R对象的期望并不完全相同。 但是我可以使用as.vector(my_r_array)
将其转换为常规向量,并对其执行任何R操作,例如将每一项乘以2。
```{r}
my_r_vector <- as.vector(py$my_python_array)
class(my_r_vector)
my_r_vector <- my_r_vector * 2
```
下一个很酷的部分:我可以在Python中使用R变量,如r.my_r_array
(更一般而言, r.variablename
),例如
```{python}
my_python_array2 = r.my_r_vector
print(my_python_array2)
```
如果您想在不设置Python的情况下看到它的外观,请查看此故事顶部的视频。
翻译自: https://www.infoworld.com/article/3340120/how-to-run-python-in-r.html
python 运行r语言