dfhclust =函数(df,标签){##粗ue互动界面进行分层群集#作者VJ Carey #topifnot(继承(df,df,data.frame“))stopifnot(长度(标签)== nrow(df))stopifnot(ncol(df)> 1)要求(闪亮)要求(群集)nms =名称(df)cmeths = c(“ward.d”,“ward.d2”,“单”,“完成”,“平均”,“McQuitty”,“中位数”,“质心”)Dmeths = C(“欧几里德”,“最大值”“,”曼哈顿“,”堪培拉“,”二进制“)UI < - 流化物(TitlePanel(替代(替代(DF),”Hclust“)),侧巴峰(螺钉(粘贴(粘贴(”选择距离:“))),FluiseRow(选择CMETHS [1])),隐形(粘贴(“切割的”选择高度:“)),Fluistrow(NumericInput(”剪切“,空值= 4,min = 0,max = Inf,Step = 1)),隐形(粘贴(“从”,替换(DF),“:”)),fluistrow(checkboxgroupput(“vars”,null,cools = nms,selected = nms [1:3])))))),mainpanel(TabsetPanel(TabPanel(“树”,PlotOutput(“Plot1”)),TabPanel(“对”,Plotoutput(“paeselplot”),tabpanel(“silh”,plotOutput(“Silplot”)))))服务器< - 函数(输入,输出){OUTPUT $ PLOT1 < - 果剪辑({XV = DF [,输入$ varsplot(hclust(data.matrix(xv),方法=输入$ dmeth),方法=输入$ meth),xlab =粘贴(输入$ dmeth,“距离;”,输入$ meth,“clustering”),标签=标签)ALINE(H​​ = INPUT $ CUTVAL,LTY = 2,COL =“灰色”)})输出$ PAIDPLOT < - 叶果({XV = DF [,输入$ VARS]对(DATA.MATRIX(XV))})输出$ silplot < - renderplot({xv = df [,输入$ vars] dm = dist(data.matrix(xv),方法=输入$ dmeth)hc = hclust(data(data.matrix(xv),方法 = input$dmeth), method = input$meth) ct = cutree(hc, h = input$cutval) plot(silhouette(ct, dm)) }) } shinyApp(ui, server) }