我在R中有一个系统树,目前的变量是taxa_names。我想从data.frame中分配taxa_names (树是基于所说的data.frame)。
matrix <- data.frame(row.names = c('aa','bb','cc'),aa=c(0,1,1),bb=c(1,1,0),cc=c(0,1,1))
> matrix
aa bb cc
aa 0 1 0
bb 1 1 1
cc 1 0 1
d.matrix <- dist(matrix)
h.matrix <- hclust(d.matrix) %>% ape::as.phylo(.)分类群名称为aa,bb,cc。但我想将taxa_names设置为t和a。这些信件来自data.frame dd。
dd <- data.frame(row.names = c('aa','bb','cc'),values = c('t','a','a'))
> dd
values
aa t
bb a
cc add实际上有更多的列,但我在这里将其缩短。
如何在R中手动设置树的taxa_names?在data.frame中指定所需的taxa_names
编辑:我尝试了taxa_names <- c()和AssignTaxonomy() (来自dada2包),但没有成功
发布于 2020-08-05 19:15:28
首先,我发现将数据作为character而不是factor (data.frames的默认格式)读取是一种很好的做法。这可以通过使用stringsAsFactors参数来完成:
dd <- data.frame(row.names = c('aa','bb','cc'),values = c('t','a','a'), stringsAsFactors = FALSE)然后,您可以直接将名称分配给phylo对象的特定条目(您可以根据需要重新排序):
h.matrix$tip.label = dd$values要了解有关phylo类的更多信息,请查看https://www.rdocumentation.org/packages/ape/versions/2.6-3/topics/read.tree
https://stackoverflow.com/questions/63261663
复制相似问题