当前位置: 首页 > article >正文

R环境依赖的备份与恢复全攻略

文章目录

  • 备份
  • 恢复
      • 1. 加载保存的包名称列表
      • 2. 重新安装包
      • 注意事项
  • 比对打印缺失的包
      • 代码解释
      • 可选:以DataFrame格式输出缺失的数据
  • 另外一种导出与导入方法

备份

首先,通过以下代码导出所有的包版本为文件。

# Store the list of installed package names in a variable
installed_pkgs <- installed.packages()[, 1]

# Save the variable to an Rdata file
save(installed_pkgs, file = "rpkgs.Rdata")

恢复

通过上一步的 "rpkgs.Rdata"文件来安装
要通过rpkgs.Rdata文件来重新安装之前保存的R包列表,您可以按照以下步骤来操作。

1. 加载保存的包名称列表

首先,需要加载之前保存的rpkgs.Rdata文件,其中包含了包名称的列表。

load("rpkgs.Rdata")

在执行这行代码后,变量 installed_pkgs 中会包含之前保存的包名称列表。

2. 重新安装包

然后,可以使用 install.packages() 函数来批量安装这些包。以下代码会检查每个包是否已经安装,如果未安装则安装它。

# 检查每个包是否已安装,如果没有安装则安装
for (pkg in installed_pkgs) {
  if (!require(pkg, character.only = TRUE)) {
    install.packages(pkg, dependencies = TRUE)
  }
}

这段代码会遍历installed_pkgs中的每个包名称,并在需要时进行安装。通过这种方法,您可以确保环境中恢复到与之前相同的包集合。

注意事项

  • 请确保您已连接到互联网,因为安装包需要从CRAN下载。
  • 如果您之前的包来自不同的仓库(例如Bioconductor),您可能需要为特定的包指定安装源。

比对打印缺失的包

xlsx文件,第一文件的A,B列是否都包含在第二文件中.不完全包含时候,打印只存在第一文件中的
如果第一文件的A、B列组合并不完全包含在第二文件中,并且您希望打印出只存在于第一个文件中的行,可以稍微调整一下代码,找到并输出这些不匹配的行。

以下是Python代码的实现:

import pandas as pd

# 读取第一个文件的A、B列
file1 = pd.read_excel("file1.xlsx", usecols=["A", "B"])

# 读取第二个文件的A、B列
file2 = pd.read_excel("file2.xlsx", usecols=["A", "B"])

# 将两个DataFrame的A、B列组合成元组,便于对比
file1_tuples = set([tuple(x) for x in file1.to_numpy()])
file2_tuples = set([tuple(x) for x in file2.to_numpy()])

# 检查 file1 的 A、B 列是否都包含在 file2 中
if file1_tuples.issubset(file2_tuples):
    print("第一文件的A,B列都包含在第二文件中")
else:
    print("第一文件的A,B列并不完全包含在第二文件中")
    # 找出只存在于第一个文件中的组合
    only_in_file1 = file1_tuples - file2_tuples
    # 打印只存在于第一个文件中的组合
    print("只存在于第一个文件中的组合(A, B 列)如下:")
    for item in only_in_file1:
        print(item)

代码解释

  1. file1_tuples - file2_tuples 会得到只在第一个文件中的 (A, B) 组合。
  2. 如果不完全包含,则打印出这些只存在于第一个文件的 (A, B) 列组合。

可选:以DataFrame格式输出缺失的数据

如果希望输出为一个DataFrame(便于保存或进一步分析),可以使用以下代码:

# 转换缺失的组合为DataFrame
only_in_file1_df = pd.DataFrame(list(only_in_file1), columns=["A", "B"])
print("只存在于第一个文件中的组合(A, B 列):")
print(only_in_file1_df)

这样,您可以直接将 only_in_file1_df 保存为新的Excel文件:

only_in_file1_df.to_excel("only_in_file1.xlsx", index=False)

这样会将只存在于第一个文件中的 (A, B) 组合保存到 only_in_file1.xlsx 文件中。


另外一种导出与导入方法

原理为直接同步库所有文件
这个时候我们只需要在新电脑上安装相同版本的 R 和 Rstudio,将旧电脑的 R 包文件夹覆盖新电脑的 R 包文件夹即可。

输入以下代码即可获得 R 包安装的路径(如果你有多个路径,说明你的 R 包安装在多个位置)。

.libPaths()

1Windows

在 Windows 上很好操作,通常是 …/R-x.x.x/library 路径下。如下为我师姐的 Windows 电脑输出结果
代码语言:javascript
复制

“C:/Program Files/R/R-4.1.2/library”

2Mac

在 Mac 上相对麻烦一点~

复制路径,点开访达(或使用快捷键 Command+Shift+G),在弹出的对话框中输入路径,然后点击前往按钮即可。

又或者直接使用终端应用程序来查找路径。打开终端,输入 “cd” 命令,后跟路径,然后按回车键即可。

cd /Library/Frameworks/R.framework/Versions/4.1/Resources/library

参考文章:https://cloud.tencent.com/developer/article/2330006


http://www.kler.cn/a/402208.html

相关文章:

  • 无插件H5播放器EasyPlayer.js视频流媒体播放器如何开启electron硬解码Hevc(H265)
  • Pytest-Bdd-Playwright 系列教程(10):配置功能文件路径 优化场景定义
  • Proteus 8.17的详细安装教程
  • K8s 一键部署 MongoDB 的 Replica-Set 和 MongoDB-Express
  • 麒麟时间同步搭建chrony服务器
  • 【计算机网络安全】湖北大学-mysql事务隔离性实验
  • 【PHP小课堂】一起学习PHP中的反射(三)
  • selenium元素定位校验以及遇到的元素操作问题记录
  • OpenAI Adjusts Strategy as ‘GPT’ AI Progress Slow
  • 将大模型生成数据存入Excel,并用增量的方式存入Excel
  • Linux全局替换配置文件的IP
  • 【PyTorch][chapter 28] 揭秘 Transformer:缩放定律指南
  • 第十五章 Spring之假如让你来写AOP——Joinpoint(连接点)篇
  • flex布局样式 类名化scss(sass)
  • 在centos7中安装SqlDeveloper的Oracle可视化工具
  • 网络安全领域的最新动态和漏洞信息
  • 解决docker mysql命令行无法输入中文
  • java设计模式 - 装饰者模式
  • go-zero(三) 数据库操作
  • 集群聊天服务器(8)用户登录业务
  • 游戏引擎学习第19天
  • 网络安全web之信息泄露
  • 语义分割(semantic segmentation)
  • 《生成式 AI》课程 第3講 CODE TASK执行文章摘要的机器人
  • 联通光猫(烽火通信设备)改桥接教程
  • 共建智能软件开发联合实验室,怿星科技助力东风柳汽加速智能化技术创新