r - 如何导入 .R 文件并为其指定别名?就像 import myfile.R as mf

标签 r namespaces

R 初学者,真的很怀念 Python

import pandas as pd
import my_file_which_is_just_a_file_not_a_package as mf
out = mf.my_cool_function()

我找到了一种方法来实现与前者类似的方法(为包分配别名),但如何执行后者,即如何为 .R 文件(而不是包)分配别名您要进口吗?您已将一些经常使用的函数放入单独的 .R 文件中,或者您将程序分成多个 .R 文件以保持整洁。

注意:这不是询问如何为包分配别名的问题的重复 - 我说的是单个 R 文件,而不是包。

据我所知,命名空间库为已安装的软件包提供了类似于 import as 的功能:

library(namespace)
registerNamespace('ggp', loadNamespace('ggplot2'))
data(iris)
ggp::ggplot(iris, ggp::aes(x = Petal.Length, y = Sepal.Length)) + ggp::geom_point()

我还了解到,您可以使用 import 仅从另一个 .R 文件导入某些函数,例如来自另一个脚本(不是包):

import::here(fun_a, fun_b, .from = "other_resources.R")
a <- fun_a(…)

最后,您可以使用source加载另一个脚本。

但是这些都没有解决我关于使用别名导入的观点。

编辑

自从有人问我以来,我正在尝试学习一些 R,因为:

  • 我很好奇;我上次尝试 R 是在 tidyverse “革命”之前;我当时讨厌它,发现它晦涩、神秘,而且文档也极其糟糕。每个人都在说 tidyverse 有多棒,所以我很想再尝试一下 R
  • 我不太可能将所有工作流程从 Python 迁移到 R,但我可能想在 R 中执行某些操作。一个示例是读取大型 Excel 文件并导出到 SQL;这两项任务在 R 中都要快得多。我现在可以在很短的时间内将大型 xlsx 文件导入到 SQL 中,然后让 Python 从 SQL 中读取数据,并保持工作流程的其余部分不变。我发布了有关它的here ,我还解释了为什么 CSV 对我来说不是最佳选择(请不要回复说“使用 CSV”)。

最佳答案

听起来您想定义一个环境并向其中添加一个文件。我发现 sys.source 对此很有用。

我有一个名为“my_test_script.R”的示例文件,其中包含:

MYCONSTANT <- 3

testfun <- function(val){
  print(val)
}

testfun2 <- function(x){
  return(x + MYCONSTANT)
}

现在有一个示例 session 将该文件读取到环境中,以便我可以将其中的信息“别名”为“tstEnv”:

> tstEnv <- new.env()
> sys.source(file = "my_test_script.R", envir = tstEnv, toplevel.env = tstEnv)
> tstEnv$testfun("it works")
[1] "it works"
> tstEnv$testfun2(0) 
[1] 3
> tstEnv$testfun2(1)
[1] 4
> tstEnv$MYCONSTANT # I can read my constants too
[1] 3

关于r - 如何导入 .R 文件并为其指定别名?就像 import myfile.R as mf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55521517/

相关文章:

r - 在 R 中创建 xlsx 工作表 - 字体颜色不起作用

xml - Delphi中如何设置文档元素的前缀

php - 在@param 中使用命名空间

r - 如何用R计算分类的精度、召回率和准确率?

r - 将值行添加到矩阵

R 幂回归中 stat_smooth 和 lm (使用对数)之间的差异?

PHP 命名空间和动态类名

r - 为什么这些数字不相等?

php - 使用 XPath 提取 xml 数据

c# - 在程序集的命名空间内循环?