You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Rphylopars时报错Error in class(tree) <- "phylo"求助

报错核心原因排查

1. 树参数传入错误

你报错的直接原因是phylopars调用时给tree参数传入了FA_data$phy,而FA_data是你读取的csv表格对象,不存在名为phy的列,实际传入值为NULL,才会触发“尝试给NULL设置属性”的错误。你之前已经通过read.tree将系统发育树正确读取存入phy变量,直接传入该变量即可。

2. 性状数据格式不符合要求

phylopars要求trait_data参数必须是第一列为和树的tip.label匹配的物种名,后续列为性状值的数据框,你直接传入FA_data$fatty1_continuous仅为单列数值向量,缺少物种匹配信息,就算修正树参数也会继续报错。

修正后的代码示例

# 提前加载依赖包
library(Rphylopars)
library(ape)

# 读取系统发育树
phy <- read.tree("combined_trees.txt")
# 校验tip标签,可选操作
head(phy$tip.label)

# 读取性状数据
FA_data <- read.csv("fatty_acid_example_data.csv", header = TRUE, na.strings = ".")
# 构造符合要求的性状数据框:第一列替换为你csv里实际存储物种名的列名
trait_df <- FA_data[, c("你的物种名列名", "fatty1_continuous")]

# 运行phylopars
PPE <- phylopars(trait_data = trait_df, tree = phy)

# 输出表型协方差矩阵
PPE$cov

额外校验项

如果修改后仍报错,优先检查以下内容:

  • 性状数据的物种名拼写、大小写和树的tip.label完全一致,无多余空格
  • 性状数据没有完全缺失的物种条目
  • 若系统发育树为无根树,可先执行phy <- root(phy, outgroup = "你的外类群物种名", resolve.root = TRUE)转为有根树

内容的提问来源于stack exchange,提问作者Serena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:57:04