如何批量迁移R中用edit()/fix()创建的自定义函数至新电脑?
批量导出R中自定义函数的解决方案
嘿,我太懂你这种要迁移上百个自定义函数的痛苦了——一个个复制粘贴简直是浪费生命!别着急,咱们用R的内置工具就能轻松搞定,步骤如下:
1. 筛选出所有自定义函数
首先,我们需要从全局环境里把所有你用edit()/fix()创建的函数筛选出来(毕竟objects()会列出所有对象,包括数据框、变量这些):
# 获取全局环境中所有的自定义函数 my_custom_functions <- ls(envir = .GlobalEnv)[sapply(ls(envir = .GlobalEnv), function(x) is.function(get(x)))]
执行完这段代码,my_custom_functions就会存储所有你创建的函数名称。
2. 批量导出到文件
接下来用dump()函数把这些函数导出成一个可读的R脚本文件:
# 导出到当前工作目录下的my_custom_functions.R文件 dump(my_custom_functions, file = "my_custom_functions.R")
你可以在R里用getwd()查看当前工作目录,找到这个生成的脚本文件。
如果你更倾向于二进制格式(导入更快,不过不可直接编辑),也可以用save():
# 保存为RData文件 save(list = my_custom_functions, file = "my_custom_functions.RData")
3. 迁移到新电脑并导入
把生成的my_custom_functions.R(或RData文件)复制到新电脑,然后在新的R环境里执行:
# 导入R脚本文件(推荐,可查看编辑) source("你的文件路径/my_custom_functions.R") # 或者导入RData文件 load("你的文件路径/my_custom_functions.RData")
执行完之后,所有自定义函数就会出现在新电脑的R全局环境里,和之前一模一样!
补充说明
为什么你在系统库或文档目录找不到这些函数?因为edit()和fix()创建的函数是直接存在R的**内存(全局环境)**里的,并没有自动保存到本地文件,只有手动导出才会生成对应的文件哦。
内容的提问来源于stack exchange,提问作者Alan E
相关产品推荐
相关产品推荐

