предисловие
Если вы все еще боретесь: лучше использовать Python или R для науки о данных? Теперь мой ответ: не обязательно. Теперь переменные двух могут вызывать друг друга. Вы можете выполнять обработку данных в R (tidyverse
), представить (ggplot2
), используя Python для разработки. Для получения подробной информации, пожалуйста, обратитесь к этой статье:R против Python: в чем разница?
Это все для этого--сетчатый пакет
Пакет reticulate охватывает полный набор инструментов для взаимодействия между Python и R, доступных как в R, так и в Rstudio, в том числе:
1) Есть несколько способов вызвать Python в R. Включает R Markdown, загрузку скриптов Python, импорт модулей Python и интерактивное использование Python в сеансе R.
2) Реализовать преобразования между объектами R и Python (например, между фреймами данных R и Python, матрицами R и массивами NumPy).
Сеанс Python встроен в сеанс R, что обеспечивает беспрепятственное и высокопроизводительное взаимодействие. Если вы разработчик R и работаете с Python или работаете в двуязычной команде специалистов по данным, пакет reticulate может значительно упростить ваш рабочий процесс! Официальные источники доступны по адресу:сетчатый веб-сайт
Рамки этой статьи
Предварительная подготовка
Установите сетчатый пакет
Его можно установить и загрузить напрямую, что очень удобно.
install.packages("reticulate")
library("reticulate")
Загрузите библиотеку Python
Предположим, мы хотим использовать библиотеку pandas, но установки нет, тогда один из способов — запустить следующий код под движком R. Вы можете скачать стороннюю библиотеку python, а также проверить успешность установки и других операций.
py_install("pandas") #下载scipy库
py_module_available("pandas") #查看是否安装成功
#repl_python()# 查看python路径
#use_python("D:/anaconda/python.exe") #更换python路径
импортировать библиотеку питона
После установки сторонней библиотеки ее можно импортировать, что тоже делается под движком R.
pd <- import("pandas")
Можно обнаружить, что это отличается от кода pthon:
-
import("os)
вместоimport os
-
$
вместо.
-
<-
вместо=
3. Общие операции
reticulate включает механизм Python для R Markdown со следующими функциями, см.reticulate: R interface to Python:
1) Блоки Python можно запускать в одном сеансе Python, встроенном в сеанс R. Также общие переменные/состояние между блоками Python.
2) Выходные данные Python для печати, включая графический вывод из matplotlib.
3) Доступ к объектам, созданным в блоках Python в R, можно получить с помощью объекта py.
4) Используйте объект r для доступа к объекту, созданному в блоке R, из Python.
Рисование
Вы можете рисовать прямо с помощью движка Python.
import numpy as np
import matplotlib.pyplot as plt
# 计算正弦曲线上点的 x 和 y 坐标
x = np.arange(0, 3 * np.pi, 0.1)
y = np.sin(x)
plt.title("sine wave form") # 使用 matplotlib 来绘制点
plt.plot(x, y)
plt.show()
прочитать файл
Как читать в питоне и как читать здесь, в основном то же самое, что и в Jupter Notebook. Прочтите таблицу данных в формате csv ниже.
import pandas as pd
df = pd.read_csv("test.csv", encoding="gbk")
df.head()
Возвращаемый df — это объект Python, мы видим, что таблица выглядит не очень хорошо, это объект Python в R.
Вызов переменных Python в блоках кода R
Я только что говорил о запуске блоков кода Python в Rmakdown, а не о запуске кода Python или вызове переменных Python в блоках кода R. Теперь давайте попробуем вызвать переменные Python в блоках кода R.
имя переменной py$python
Вызов метода Python в блоке кода R с именем переменной py$python
- py эквивалентен объекту в Python
- $ эквивалентен Pythonточка
- python_variable_name — это имя переменной в блоке кода Python.
Например, в приведенной выше переменной Python df вызовите ее в R
```{r}
py$df
Теперь при вызове объекта Python df R по умолчанию преобразует его в объект R, поэтому содержимое остается таким же, а стиль кажется лучше.
source_python()
Переменные в файлах py можно импортировать с помощью source_python('путь к файлу py') в пакете reticulate, чтобы внешние переменные можно было использовать в блоках кода R. Например, я готовлю две строки A и B в data.py.
A = '我是庄闪闪,'B = '来自浙江温州'
Запустите data.py в блоке кода R
```{r}library(reticulate)
source_python("data.py")
paste0(A, B)
#我是庄闪闪,来自浙江温州
py_run_file()
Чтобы запустить файл test.py в папке проекта в блоке кода R, используйте следующий код
library(reticulate)
py_run_file("test.py")