在r中从Tocher的clustring方法创建数据帧
我使用“biotools”软件包来计算Tocher聚类。资料共有17个品种,分为6个类群。代码和结果如下所示在r中从Tocher的clustring方法创建数据帧,r,dataframe,cluster-analysis,R,Dataframe,Cluster Analysis,我使用“biotools”软件包来计算Tocher聚类。资料共有17个品种,分为6个类群。代码和结果如下所示 data(garlicdist) garlic <- tocher(garlicdist) garlic > Tocher's Clustering $`cluster 1` [1] 8 9 12 4 10 2 7 15 $`cluster 2` [1] 1 6 14 $`cluster 3` [1] 11 13 $`cl
data(garlicdist)
garlic <- tocher(garlicdist)
garlic
> Tocher's Clustering
$`cluster 1`
[1] 8 9 12 4 10 2 7 15
$`cluster 2`
[1] 1 6 14
$`cluster 3`
[1] 11 13
$`cluster 4`
[1] 3 5
$`cluster 5`
[1] 16
$`cluster 6`
[1] 17
现在,我想从Tocher的聚类中创建一个矩阵数据,其中品种将被有序地放置,聚类名称和聚类编号将根据品种放置,如pic品种分布中显示的以下数据
如果有人能帮我这么做,我将不胜感激。我认为您需要的是data.frame/tible,而不是矩阵,因为您通常不会在预期结果中使用群集字符列进行计算。您的群集列表位于$clusters中 向列表中的每个向量添加NAs,使每个向量具有相同的长度。 将它们组合成一个矩阵。将矩阵强制为TIBLE 将它们折叠成成对的名称和值 通过提取集群中的数字,添加集群_no列 放下NAs 最终代码:
library(biotools)
library(tidyverse)
library(stringr)
data(garlicdist)
garlic <- tocher(garlicdist)
cluster_df <- garlic$clusters %>%
sapply("length<-", n = max(length(.))) %>%
as_tibble() %>% gather(cluster, variety) %>%
mutate(cluster_no = str_extract(cluster, "[:digit:]+")) %>%
drop_na()
欢迎来到堆栈溢出!你能不能直接将要求的输出添加到你的问题中,而不是链接屏幕截图?这个问题的可读性会更好,你也不会冒着屏幕截图链接失效的风险。哇……它正在工作。非常感谢您的回复。