【发布时间】:2012-09-14 14:59:37
【问题描述】:
我正在尝试获取多个功能,它们的名称中的数字不同。
例如:func1、func2。
我尝试使用“func_1”和“func_2”,以及将数字放在第一位,“1func”和“2func”。无论我如何索引函数名称,源函数只会读取一个它调用的函数"func" - 这不是我想要的。
我尝试过使用 for-loops 和 sapply:
for循环:
func.list <- list.files(path="/some_path",pattern="some pattern",full.names=TRUE)
for(i in 1:length(func.list)){
source(func.list[i])
}
申请:
sapply(func.list,FUN=source)
我将编写数据校正函数的多个版本,并且非常希望能够对它们进行索引 - 因为给出一个简洁但具体的名称会很困难,并且不允许我有选择地仅获取功能文件从他们的目录。
在我的代码中,func.list 给出了输出(由于隐私/合同问题,我已经替换了实际目录):
[1] "mypath/1resp.correction.R"
[2] "mypath/2resp.correction.R"
然后,当我使用 for-loop 或 sapply 代码(如上所列)获取 func.list 时,R 仅加载一个名为 resp.correction 的函数,其代码主体来自“2resp.correction.R”。
【问题讨论】:
-
这听起来不像标准的源行为,请让您的 example.reproducible。
-
你当然不能把数字放在前面,比如
1func——这不是R(或大多数语言)中的合法标识符。 -
@David Robinson:感谢您的意见。为了进一步澄清,我尝试使用以下格式(没有成功):“func1”、“func_1”和“1func”。
-
@Paul Hiermstra 我尽力编辑代码,以使示例可重现。我不确定我还能做什么。
标签: r function abbreviation