R блестящий, построите иерархическую сегментацию, где пользователь может ввести уровень среза

В R Shiny я запускаю и строю (через дендрограмму) иерархическую сегментацию:

  hc <- reactive({
    if(length(kc()) == 0){
      return(NULL)
    }else{
      hc <- hclust(dist(kc()$centers), method="ward.D")
      return(hc)
    }
  })

  output$hc_plot <- renderPlot({
    if(is.null(hc())){
      return(NULL)
    }else{
      plot(hc(), main="dendrogram")
    }
  })

Я хотел бы позволить пользователю вырезать дендрограмму через поле ввода nb_kernel_hc, поэтому я делаю:

  observe({
    if(input$nb_kernel_hc != input$nb_kernel){
      hc()$vecteur <- stats::cutree(hc(), k = input$nb_kernel_hc )
      rect.hclust(hc(), k=input$nb_kernel_hc, border="red")
    }
  })

Но я получаю:

Предупреждение: ошибка в stats:: cutree: неверное дерево (компонент слияния)

пока он отлично работает в R

0 ответов

Другие вопросы по тегам