查看原文
其他

手把手 | 哇!用R也可以跑Python了

生信宝典 2022-03-29

The following article is from 大数据文摘 Author 文摘菌


大数据文摘作品

编译:大茜、钱天培


R还是Python?


真是个千古难题!


如果你主要从事数据分析、统计建模和可视化,R大概是你的不二之选。但如果你还想来搞点深度学习,整个自然语言处理,那你可还真得用Python。


如果你处于交叉领域,很可能就需要两种语言切换。后果是,写个for loop还出bug真的是家常便饭。报警!


面对这种困境的绝不止你一个人!最近的KDnuggets Analytics的软件调查中,Python和R位居数据科学和机器学习软件的前两名。


如果你真的想提高你在数据科学领域的能力,这两种语言你确实都应该学习。


不过现在好消息来了!


RStudio开发了一个名为reticulate的包。通过安装包,你现在可以在R上运行Python的安装包和函数了~


今天文摘菌就来教教你咋用这个reticulate包。


安装并加载reticulate包


运行下面的命令来安装这个包、并导入到您的系统中。


# 安装reticulate包
install.packages("reticulate")
# 加载reticulate包
library(reticulate)


检查您的系统是否安装过Python


py_available()


返回值为TRUE或FALSE。如果返回的是TRUE,那恭喜你,您的系统已经有Python啦。FALSE的话就得先去装一下Python了。


在R中导入一个python模块


您可以使用函数import()来导入特定的包或模块。


os <- import(“os”)
os$getcwd()


上面的命令返回工作目录。


[1]"C:\\Users\\DELL\\Documents"


您可以使用os包中的listdir()函数来查看工作目录中的所有文件。


os$listdir()



安装Python包


第一步:创建新的工作环境;


conda_create(“r-reticulate”)


第二步:在conda环境下安装“r-reticulate”和“numpy”;


conda_install(“r-reticulate”,“numpy”)


如果“numpy”已经安装,您不必再次安装这个包。上面的代码只是给个例子而已。


第三步:加载包。


numpy <- import(“numpy”)


使用numpy数组


首先建立一个简单的numpy数组


y <- array(1:4, c(2, 2))
x <- numpy$array(y)


      [,1] [,2]
[1,]    1    3
[2,]    2    4


将数组进行转置


numpy$transpose(x)


      [,1] [,2]
[1,]    1    2
[2,]    3    4


求特征根和特征向量


numpy$linalg$eig(x)


一些数学函数


numpy$sqrt(x)
numpy$exp(x)


交互地使用Python


您可以在R中创建交互式Python控制台。您在Python中创建的对象可在R中使用(反之亦然)。通过使用repl_python()函数,可以使Python和R交互。首先,下载以下程序中使用的数据集:


repl_python()
# 加载“panda”数据集
import pandas as pd
# 载入数据集
travel = pd.read_excel(“AIR.xlsx”)
# 显示数据集的行列数
travel.shape
# 随机选取数据集中的行数
travel.sample(n = 10)
# 按某一标志分组
travel.groupby(“Year”).AIR.mean()
# 筛选数据个案
t = travel.loc[(travel.Month >= 6) & (travel.Year >= 1955),:]
# 回到R
exit


注意:您需要键入“exit”来返回到R会话


怎样从R中获取在python中创建的对象


你可以在利用py object获取python里的对象。


summary(py$t)


在这种情况下,我会用R的summary()函数并访问在python中创建的数据集T。此外,您可以使用ggplot2软件包绘制折线图。


#利用ggplot2绘制线图
library(ggplot2)
ggplot(py$t, aes(AIR, Year)) + geom_line()


怎样从Python中获取在R中创建的对象


您可以使用r object来解决这个问题。


先在R中创建一个对象:


mydata = head(cars, n=15)


在Python REPL中调用之前在R中所创建的对象:


repl_python()
import pandas as pd
r.mydata.describe()
pd.isnull(r.mydata.speed)
exit


使用sklearn包构建Logistic回归模型


sklearn软件包是python中最受欢迎的机器学习软件包之一,它支持各种统计和机器学习的算法。


repl_python()
# 加载包
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
# 加载数据库
iris = datasets.load_iris()
# 建立logit模型
model = LogisticRegression()
model.fit(iris.data, iris.target)
# 进行预测
actual = iris.target
predicted = model.predict(iris.data)
#模型性能对比矩阵
print(metrics.classification_report(actual, predicted))
print(metrics.confusion_matrix(actual, predicted))


其他有用的函数


查看python的配置


运行py_config()命令来查看系统中安装的R的版本。它还能显示anaconda和numpy的详细信息。


py_config()



检查某个包是否安装


可以用以下命令来检查“pandas”是否安装:


py_module_available(“pandas”)


原文链接:

https://www.r-bloggers.com/run-python-from-r/


R统计和作图

Python




【今日机器学习概念】

Have a Great Definition志愿者介绍

回复“志愿者”加入我们



更多阅读

画图三字经 生信视频 生信系列教程 

心得体会 癌症数据库 Linux Python 

高通量分析 在线画图 测序历史 超级增强子

培训视频 PPT EXCEL 文章写作 ggplot2

海哥组学 可视化套路 基因组浏览器

色彩搭配 图形排版 互作网络

后台回复“生信宝典福利第一波”获取教程合集

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存