服务器conda环境安装rpy2

参考博客

https://stackoverflow.com/questions/68936589/how-to-select-r-installation-when-using-rpy2-on-conda

现在我遇到这样一个问题,服务器系统环境没有R(没有权限安装),我只能在minconda的conda环境中使用R, 使用方法如下
在这里插入图片描述
我现在想在另一个conda环境(pyg)中使用rpy2, 其中rpy2中对应的R环境事r40seurat40,例如我要导入mclust package, 操作如下
首先在r40seurat40的环境中安装mclust包
install.packages("mclust")
安装成功后,测试如下
在这里插入图片描述

然后进入pyg环境

conda activate pyg

在这里插入图片描述

进入路径
/home/yxkang/miniconda3/envs/r40seurat40/lib/R/lib

然后安装rpy2, 使用以下命令

export LDFLAGS="-Wl,-rpath,/home/yxkang/miniconda3/envs/r40seurat40/lib/R/lib"

pip install rpy2 --force-reinstall --compile --no-binary rpy2

结果如下
在这里插入图片描述
此时直接测试rpy2会出问题,如下

在这里插入图片描述

运行python -m rpy2.situation结果如下

在这里插入图片描述
因为需要设置R_HOME的系统变量

这里我使用的是

# the location of R (used for the mclust clustering)
import os
os.environ['R_HOME'] = "/home/yxkang/miniconda3/envs/r40seurat40/lib/R"
os.environ['R_USER'] = "/home/yxkang/miniconda3/envs/r40seurat40/lib/python3.8/site-packages/rpy2"

测试如下

# the location of R (used for the mclust clustering)
import os
os.environ['R_HOME'] = "/home/yxkang/miniconda3/envs/r40seurat40/lib/R"
os.environ['R_USER'] = "/home/yxkang/miniconda3/envs/r40seurat40/lib/python3.8/site-packages/rpy2"
import rpy2.robjects as robjects
import rpy2.robjects.numpy2ri

import rpy2.robjects as ro

# 调用 R 中的 sqrt 函数
r_sqrt = ro.r['sqrt']
print(r_sqrt(16))  # 输出 4

在这里插入图片描述

import rpy2.robjects as ro

# 执行 R 代码
ro.r('x <- rnorm(10)')  # 在 R 中创建一个正态分布的随机数向量
x = ro.r('x')  # 获取 R 中的变量 x
print(x)

在这里插入图片描述

import pandas as pd
from rpy2.robjects import pandas2ri

# 启动 pandas 和 R 之间的自动转换
pandas2ri.activate()

# 创建 pandas DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 将 pandas DataFrame 转换为 R 的 data.frame
r_df = pandas2ri.py2rpy(df)
print(r_df)

在这里插入图片描述

from rpy2.robjects.packages import importr

# 导入基础包 'base',这是 R 的核心包之一
base = importr('base')

# 导入一个外部包,比如 'ggplot2'
ggplot2 = importr('ggplot2')

mclust = importr('mclust')

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值