经管之家送您一份
应届毕业生专属福利!
求职就业群
感谢您参与论坛问题回答
经管之家送您两个论坛币!
+2 论坛币
[size=13.3333px]R初学者求助各路大神。问题描述:救助者用[size=13.3333px]treeNodfTest函数进行系统发育嵌套分布及其影响机制,代码如下。多方尝试都未解决最后一句代码报错问题,请相关大神帮我看看,指点迷津。示例数据已经上传,用于构树的巨型树占用存储空间较大,无法上传。>library(ggplot2)> library(dplyr)> library(tidyr)> library(tidyverse)> library(RColorBrewer)> library(ggpubr)> library(vegan)> library(ppcor)> library(bipartite)> library(FD)> library(gawdis)> library(forcats)> library(CommEcol)> library(U.PhyloMaker)> library(ape)> library(magrittr)> ################### phylogenetic nestedness sites - area #######################> mat2_adriatic <- read.csv("C:/Users/Thinkbook/Desktop/0705phyl_treNodf/07052_Phylo_exist_envir.csv")> # 将点替换为"_"> colnames(mat2_adriatic) <- gsub("\\.", "_", colnames(mat2_adriatic))> #mat2_adriatic <- arrange(mat2_adriatic, by=desc(DEM))> head(mat2_adriatic) YRD DEM Grus_leucogeranus Eurynorhynchus_pygmeus Megapodius_bernsteinii1 site1 46.904048 0 0 02 site1 24.069672 0 0 03 site1 6.614837 0 0 04 site1 30.387271 0 0 05 site1 31.536921 0 0 06 site2 46.904048 0 0 0 Emberiza_aureola Tragopan_caboti Nettapus_coromandelianus Clangula_hyemalis1 0 0 1 02 0 0 0 03 0 0 0 04 0 0 0 05 0 0 0 06 0 0 0 0 Mergus_squamatus Grus_vipio Grus_japonensis1 0 0 02 0 0 03 0 0 04 0 0 05 0 0 06 0 0 0> ######################## 构建指定物种的系统发育树(提取1棵树)####################> megatree <- read.tree("C:/Users/Thinkbook/Desktop/0705phyl_treNodf/bird_tree.tre")> megatree <- megatree[[1]]> #############################导入物种列表#######################################> bird_sp <- read.csv("C:/Users/Thinkbook/Desktop/0705phyl_treNodf/07052_phylo_tree.csv")> head(bird_sp) species genus family1 Grus leucogeranus Grus Gruida2 Eurynorhynchus pygmeus Eurynorhynchus Scolopacidae3 Megapodius bernsteinii Megapodius Laridae4 Emberiza aureola Emberiza Emberizidae5 Tragopan caboti Tragopan Phasianidae6 Nettapus coromandelianus Nettapus Anatidae> # 使用gsub函数将空格替换为下划线> adriatic_sp <-bird_sp$species> adriatic_sp_modified <- gsub(" ", "_", adriatic_sp)> missing_species <- setdiff(adriatic_sp_modified, megatree$tip.label)> if (length(missing_species) > 0) {+ warning("以下物种在megatree的tip.label中未找到:", paste(missing_species, collapse = ", "))+ }> # 识别未找到的物种> missing_species <- setdiff(adriatic_sp_modified, megatree$tip.label)> # 删除未找到的物种> adriatic_sp_filtered <- adriatic_sp_modified[!(adriatic_sp_modified %in% missing_species)]> # 验证结果> missing_species_after_filtering <- setdiff(adriatic_sp_filtered, megatree$tip.label)> if (length(missing_species_after_filtering) > 0) {+ warning("仍然有物种在megatree的tip.label中未找到:", paste(missing_species_after_filtering, collapse = ", "))+ } else {+ print("所有物种都在megatree的tip.label中找到。")+ }[1] "所有物种都在megatree的tip.label中找到。"> # 输出过滤后的物种列表> print(adriatic_sp_filtered) [1] "Grus_leucogeranus" "Eurynorhynchus_pygmeus" "Megapodius_bernsteinii" [4] "Emberiza_aureola" "Tragopan_caboti" "Nettapus_coromandelianus" [7] "Clangula_hyemalis" "Mergus_squamatus" "Grus_vipio" [10] "Grus_japonensis" > #######################指定物种构树############################################> adriatic_tree <- phylo.maker(adriatic_sp_filtered, megatree, bird_sp, + nodes.type = 2, scenario = 1) [1] "All species in sp.list are present on the tree, return the phylogeny pruned from the tree."> plot(adriatic_tree)> ###############################################################################> adriatic_PhyloNODF_area <- treeNodfTest(mat2_adriatic, col.tree=adriatic_tree, + null.model="perm.rows", + permutations=9)Error in UseMethod("is.rooted") : "is.rooted"没有适用于"NULL"目标对象的方法此外: Warning message:In drop.tip.phylo(tree, treeabsent) : drop all tips of the tree: returning NULL
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
|