Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在r中从Tocher的clustring方法创建数据帧_R_Dataframe_Cluster Analysis - Fatal编程技术网

在r中从Tocher的clustring方法创建数据帧

在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

我使用“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

$`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()

欢迎来到堆栈溢出!你能不能直接将要求的输出添加到你的问题中,而不是链接屏幕截图?这个问题的可读性会更好,你也不会冒着屏幕截图链接失效的风险。哇……它正在工作。非常感谢您的回复。