手がかりはドキュメントにあると思います(?check.names
):
data.names: names of the tips in the order of the data; if this is not
given, names will be taken from the names or rownames of the
object data
データフレームに含まれているがツリーには存在しない分類群の名前をプログラムで返す場合は、対応する名前をデータフレームの行名として割り当てるか、data.names
引数で個別に指定する必要があります。データフレームのデフォルトの行名は、行番号に相当する文字であり、上に表示されているものとまったく同じであることに注意してください...
上記の追加情報に基づいて編集します。
Family
Rは、名前がデータフレームの要素に含まれていることを推測できません(または推測したくありません) 。試す:
check.names(traitdata,tree,data.names=as.character(traitdata$Family))
おそらく長期的には次のことを行う方が良いでしょう。
rownames(traitdata) <- as.character(traitdata$Family)
traitdata <- subset(traitdata,-Family)
check.names(traitdata,tree)
特性のデータセットに含めたくないのでFamily
、それは特性ではなく識別子です...
パッケージに含まれているサンプルデータの構造を見ると、次のようになります。
data(geospiza)
geospiza.data
分類群名がデータフレーム自体の列としてではなく、行名として含まれていることがわかります...
PSそれはStackOverflowほど素晴らしいインターフェースではありませんが、非常にフレンドリーでアクティブなR-for-phylogenyメーリングリストがありr-sig-phylo@r-projects.org
ます...