我怎样才能整齐而轻松地生成一个 out_table。我用cutree()
一个hclust()
对象对组进行了分类。我的样本是饮食协议。在我otu_table
的研究中,饮食应该是样本,分类群应该是群体。
例子
#base data for the groups
base <- data.frame(row.names = c("apple","bread","banana","orange juice"),calories=c(45,87,97,30),Mg=c(45,23,89,64))
calories Mg
apple 45 45
bread 87 23
banana 97 89
orange juice 30 64
base_dist <- dist(base)
h_base <- hclust(base_dist,method="average")
cut_base <- cutree(h_base,h=0.5)
otu_diets <- mutate(base,cluster = cut_base)##adding cluster info to df
#samples
diet1 <- data.frame(row.names = c(" red apple","banana","bread","strawberry"),calories=c(45,56,72,32),Pt=c(0,23,56,45))
diet2 <- data.frame(row.names = c("banana","bread","orange juice","apple"),calories=c(45,56,75,22),Pt=c(89,23,56,45))
如您所见,在饮食协议中,某些食物的名称与base
data.frame 中的名称不同。饮食协议中还有一些食物在base
. 我希望otu_table
看起来像这样
otu <- data.frame(row.names = c("diet1","diet2"),group1=c(1,1),group2=c(1,1),group3=c(1,1),group4=c(0,1))
otu <- otu_table(otu)
group1 group2 group3 group4
diet1 1 1 1 0
diet2 1 1 1 1
因此otu_table
,对各组中有多少种食物进行分类。在现实生活中,我有很多饮食方案和很多组,所以我不能像上面的例子那样手动完成。