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/