RStudio调用BernBeta.R函数出现unused arguments错误咨询
故障原因
- 命名空间冲突:R环境中已加载的其他包存在同名
BernBeta()函数,参数定义与你从脚本加载的自定义函数不同,R优先调用了不匹配参数的版本,触发参数未使用报错。 - 源文件加载异常:你看到的「加载正常」可能为表面状态,路径空格、旧缓存、同目录同名文件误加载都可能导致实际调用的函数并非你预期的版本。
解决步骤
- 先清空环境避免冲突,运行以下代码:
# 清空当前全局环境所有自定义对象 rm(list = ls()) # 卸载所有已加载的第三方包,彻底消除命名冲突 lapply(paste0("package:", names(sessionInfo()$otherPkgs)), detach, character.only = TRUE, unload = TRUE)
- 重新加载两个源文件,添加参数确认加载过程无异常:
source("C:/Users/megka/Documents/R files/DBDA2E-utilities.R", echo = TRUE) source("C:/Users/megka/Documents/R files/BernBeta.R", echo = TRUE)
- 验证函数参数匹配度,运行
args(BernBeta),如果输出的参数列表包含你用到的priorBetaAB、Data、plotType、showCentTend,即可正常运行你原本的代码。 - 兜底临时方案:如果仍存在冲突,强制调用全局环境中你从脚本加载的函数版本,将调用代码修改为:
posterior = get("BernBeta", envir = .GlobalEnv)(priorBetaAB=Prior, Data=Data, plotType= "Bars", showCentTend="Mode")
内容的提问来源于stack exchange,提问作者Meg Kays
相关产品推荐
相关产品推荐

