首先,很抱歉我没有提供完全可重复的示例,但是我使用的是BioConductor软件包的开发版本,并且安装有点痛苦。
我正在尝试使用do.call根据我粘贴在一起的字符串来调用函数。像这样:
testfunction <- function(){
print("do.call is working")
}
do.call(paste("test", "function", sep = ""), args = list())
打印:
&#34; do.call正在运作&#34;
当我试图调用我感兴趣的函数时,如下:
for (dataset in unique(metadata[, 1])){
replace_idx <- which(metadata[,1 ] == dataset)
do.call(paste('curatedMetagenomicData::', dataset, ".genefamilies_relab.stool", sep = ""), args = list())
if (length(replace_idx) > 0){
# Do further stuff.
}
}
我收到此错误:
错误
curatedMetagenomicData::ZellerG_2014.genefamilies_relab.stool
():
找不到功能 &#34; curatedMetagenomicData :: ZellerG_2014.genefamilies_relab.stool&#34;
在没有do.call的情况下调用循环外的函数。
这可能是某种环境问题吗?非常感谢任何帮助。