清晨好,您是今天最早来到科研通的研友!由于当前在线用户较少,发布求助请尽量完整地填写文献信息,科研通机器人24小时在线,伴您科研之路漫漫前行!

科研求助

意见反馈 2915 0 1
做好自己
做好自己 来自北京 发表于:2024-08-25 17:37:59

科研求助应该多多益善


本帖完毕
回帖
  • 等待你,消灭零评论
科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
桐桐应助宇欣采纳,获得10
16秒前
科研通AI2S应助科研通管家采纳,获得30
23秒前
NexusExplorer应助科研通管家采纳,获得10
23秒前
26秒前
wwdd完成签到,获得积分10
36秒前
44秒前
宇欣发布了新的文献求助10
48秒前
55秒前
58秒前
YL发布了新的文献求助10
1分钟前
林克完成签到,获得积分10
1分钟前
珍珠火龙果完成签到 ,获得积分10
1分钟前
1分钟前
宇欣发布了新的文献求助10
1分钟前
南宫硕完成签到 ,获得积分10
2分钟前
2分钟前
寒冷的月亮完成签到 ,获得积分10
2分钟前
2分钟前
宇欣完成签到,获得积分10
3分钟前
woxinyouyou完成签到,获得积分0
3分钟前
doudou完成签到 ,获得积分10
3分钟前
369ninja发布了新的文献求助10
3分钟前
solution完成签到 ,获得积分10
3分钟前
FMHChan完成签到,获得积分10
3分钟前
科研通AI2S应助科研通管家采纳,获得10
4分钟前
4分钟前
科研通AI2S应助科研通管家采纳,获得10
4分钟前
细心的如天完成签到 ,获得积分10
4分钟前
科研通AI6.2应助等待戈多采纳,获得10
4分钟前
znchick完成签到,获得积分10
4分钟前
ygd关闭了ygd文献求助
5分钟前
369ninja发布了新的文献求助10
5分钟前
5分钟前
cadcae完成签到,获得积分10
5分钟前
Anya发布了新的文献求助10
5分钟前
yindi1991完成签到 ,获得积分10
5分钟前
心灵美的不斜完成签到 ,获得积分10
5分钟前
5分钟前
赖氨酸发布了新的文献求助10
6分钟前
6分钟前
热门帖子
关注 科研通微信公众号,转发送积分 6486885
求助须知:如何正确求助?哪些是违规求助? 8285219
关于积分的说明 17670583
捐赠科研通 5575150
什么是DOI,文献DOI怎么找? 2913416
邀请新用户注册赠送积分活动 1890363
关于科研通互助平台的介绍 1747748
最新评论
现在主页都是20积分的 6小时前
so good 7小时前
昨天20积分的已经完成了。不好找的会加积分重新发 7小时前
这个错误通常发生在 R 语言进行并行计算时(尽管你设置了 `nworker = 1`,但 `iCAMP` 内部的 `icamp.big` 函数依然会调用底层集群或外部包进行特定的零模型随机化计算)。 导致 **`invalid 'size' argument`(无效的大小参数)** 的核心原因通常是:**由于某些 bin(物种组)内包含的物种数量(或样本量)太少,导致在进行随机抽样(如 `sample()` 函数)时,传入的抽样数量变为了 `0`、负数、或者是 `NA`。** 下面是导致该错误的两个最主要原因以及排查修复方法: --- ### 原因 1:某些 Bin 的物种数太少,且没有被正确忽略 看你的日志: > `----------Now binning com and sp without omitting small bins-----------------` 这意味着 `iCAMP` 正在对所有 bin 进行计算,**没有忽略那些极小的 bin**。虽然你设置了 `bin.size.limit = 20`,但在 `iCAMP` 的逻辑中,如果严格分 bin 导致某些“无法归类”或特殊的 bin 里面物种数少于某个抽样临界值,底层代码在计算观测 MPD 或随机化时就会因为 `sample(..., size = x)` 中的 `x < 1` 而崩溃。 #### 💡 解决方法: 尝试调整 `bin.size.limit` 或者增加系统发育树的过滤。你可以把 `bin.size.limit` 稍微调大(例如 24 或 30),或者检查你的群落数据 `comm` 中是否包含大量的低丰度/稀有物种(单件/双件物种),**建议在跑 iCAMP 之前,先过滤掉在极少数样本中**出现**的稀有物种**: ```R # 过滤掉在少于 3 个样本中**出现**的物种(根据你的数据自行调整) comm_filtered 0) >= 3] # 记得同步过滤 tree library(ape) tree_filtered `2: 'memory.limit()' is no longer supported` > `错误于checkForRemoteErrors(val)` 这说明你使用的是 **Windows 系统**,且 R 版本较新(R 4.2.0 之后已经废弃了 `memory.limit()`)。 虽然你显式设置了 `nworker = 1`,但 `iCAMP` 的某些子函数(例如底层调用 `parallel` 或 `snow` 包时)在 Windows 下创建单节点本地集群时,由于内存限制或变量传递失败,导致子节点传回了一个空值(`NULL` 或 `NA`),主节点在拿这个空值去作为 `size` 进行计算时引发了报错。 #### 💡 解决方法: 在运行 `icamp.big` 之前,手动在 R 中关闭所有潜在的并行冲突,并尝试清除内存: ```R # 1. 显式关闭可能残留的并行集群 try(parallel::stopCluster(cl), silent = TRUE) # 2. 深度清理 R 的内存垃圾 gc(full = TRUE) # 3. 重新运行,并将 nworker 设为 0 或 1 尝试 # 有些包的逻辑中,nworker = 0 才会完全不初始化并行环境,彻底走单线程 ``` --- ### 🛠️ 终极排查建议(两步走) 如果上述调整后依然在 `iCAMP` 的固定位置(如 `bin i=2` 之后)报错,说明是**输入数据的问题**。请重点检查你的输入数据: 1. **检查群落与树的匹配**:确保 `colnames(comm)` 和 `tree$tip.label` **完全一致**。虽然日志显示 `The names are re-ranked.`(名字已重新排序),但如果有物种名字在树里有、在群落里没有,或者反过来,容易导致分 bin 出现空集。 ```R # 严格确保二者物种完全对齐 sp.match 12小时前
你只悬赏了10积分啊 13小时前
谢谢!祝您科研顺利!顺心如意! 18小时前
感谢科研通,必须支持一下 18小时前
so good 19小时前