gpt4 book ai didi

r - 如何仅从 .R 文件导入函数而不执行整个文件

转载 作者:行者123 更新时间:2023-12-04 02:21:16 24 4
gpt4 key购买 nike

假设我有一个 R 脚本 testScript.R

test <- function(){cat('Hello world')}
cat('Bye world')

在 R-console 中,我知道我可以导入函数, test()经过
source('testScript.R')

但是同时也会执行 cat('Bye world') .假设不允许创建/修改文件,有没有办法只导入函数, test()不执行 cat('Bye world') ?

最佳答案

哦,伙计……这很有趣。如果没有这样的暴行,我不知道有什么方法可以做到这一点:

# assume your two like script is stored in testScript.R
a <- readLines("testScript.R")
a <- paste(a, collapse="\n")
library(stringr)
func_string <- str_extract(a, "[a-z]+ <- function.+}")
test <- eval(parse(text=func_string))
> test()
Hello world

您当然需要使用正则表达式来提取您的函数。和 str_extract_all()如果有多个功能会很有帮助。祝你好运。

关于r - 如何仅从 .R 文件导入函数而不执行整个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29131536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com