0

連続文字の先祖の状態を再構築しようとしています。ape パッケージの Ace 関数を使用すると、次のようなエラー メッセージが表示されます。

nlm(function(p) dev.BM(p), p = c(1, rep(mean(x), nb.node)), hessian = TRUE) のエラー: パラメーターに値がありませんさらに: 警告メッセージ: でmean.default(x) : 引数が数値または論理値ではありません: NA を返します

使用したコードは次のとおりです。

library(ape)
library(phylobase)
library(phytools)
tree <-read.nexus("data1.nexus")
plot(tree)
nodelabels()
a <- extract.clade(tree, node=91)
plot(a)
data<- read.csv("Character_data.csv")
col2=2
char=data[,c(col2)]
model1 <- ace(char,a,type="continuous", method = "ML")

個別の文字に使用した場合、同じデータ セットは完全に機能しました。ここにデータセットデータがあります ここにツリー ファイルtreefile

4

1 に答える 1

1

エラーの原因となっているデータが欠落しています。あなたがしなければならないことは、欠落しているデータ文字列を示すデータを読み取り、データフレームとツリーの両方から欠落しているデータを削除することです:

library(ape)
library(phylobase)
library(phytools)
tree <- read.nexus("data1.nexus")
plot(tree)
nodelabels()
data <- read.csv("Character_data.csv", na.strings="?", header=T)

missing <- which(is.na(data[,2]))

clade.full <- extract.clade(tree, node=91)
clade.notNA <- drop.tip(clade, rmv) #Remove the tip of the species(?) you don't have the data

plot(clade.full)
plot(clade.notNA) #Note this tree is not the same as the one above, it has less species(?)

char <- data[-missing,2] #Take the column 2 without the missing rows

model <- ace(char, b, type="continuous", method = "ML")

注意: すべてのデータを分析しているわけではありません。削除したヒントは次のとおりです。

> data[missing,1]
 [1] Bar_bre Par_pho Par_iph Eur_ser Opo_sym Mor_pel Aph_hyp Ere_oem Cal_bud Lim_red Act_str Hel_hec Col_dir Hyp_pau Nym_pol Mel_cin Apa_iri Bib_hyp
[19] Mar_ors Apo_cra Pse_par Lep_sin Dis_spi
于 2015-05-01T19:37:43.890 に答える