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文件以保持整洁。
NB:这不是重复的问题,询问如何为包分配别名-我说的是单个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来加载另一个脚本。
但这都不满足我关于使用别名导入的观点。
有什么建议吗?谢谢!
编辑 PS自从被问到以来,我正尝试学习一些R,因为:
答案 0 :(得分:2)
听起来像您想要定义环境并向其中添加文件的声音。我发现sys.source
对此很有用。
我有一个名为“ my_test_script.R”的示例文件,其中包含:
MYCONSTANT <- 3
testfun <- function(val){
print(val)
}
testfun2 <- function(x){
return(x + MYCONSTANT)
}
现在有一个示例会话,将文件读入环境,以便我可以将其中的信息“别名”为“ 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