你的 Shiny 应用在 CoverageBrowser()
运行时,报错:
Warning: Error in CoveragePlot: formal argument "links" matched by multiple actual arguments
这个错误表示 links
参数被多次传递,导致 R 无法解析。
可能的原因
-
CoveragePlot()
或CoverageBrowser()
可能已经默认包含links
参数,但你又手动传递了一次:CoverageBrowser(obj, region = 'HOXB5', links = FALSE)
如果
CoverageBrowser()
内部已经传递了links
,那么手动传递会导致冲突。 -
Signac 版本更新,
CoveragePlot()
的参数变更- 在新版本
Signac
中,CoveragePlot()
可能已经改变了links
参数的默认值或传递方式。 - 你可以运行:
检查args(CoveragePlot)
links
参数是否仍然支持。
- 在新版本
解决方案
方法 1:移除 links
参数
如果 links
不是必须的,可以 直接删除:
CoverageBrowser(obj, region = 'HOXB5')
这样可以避免参数冲突。
方法 2:检查 Signac 版本
运行:
packageVersion("Signac")
- 如果你的
Signac
版本较旧,可能CoveragePlot()
的links
参数有问题。 - 可以更新
Signac
:remotes::install_github("timoast/signac")
方法 3:明确传递参数
如果 links
仍然需要使用,可以 确保它只被传递一次:
CoverageBrowser(obj = obj, region = "HOXB5", links = FALSE)
这样可以 避免 R 误认为 links
传递了多次。
方法 4:检查 CoverageBrowser()
源码
如果你怀疑 CoverageBrowser()
内部重复传递了 links
,可以查看它的源码:
getAnywhere(CoverageBrowser)
看看它是否已经传递了 links
,如果有,则不需要在外部传递。
总结
解决方案 | 适用情况 |
---|---|
移除 links 参数 | 适用于 links 不是必需参数 |
检查 Signac 版本 | 适用于 Signac 版本较旧的问题 |
手动指定参数 | 适用于避免重复匹配 |
查看源码 | 适用于调试 CoverageBrowser() 内部逻辑 |
你可以试试 方法 1 或 3