Ich brauche ein Histogramm Ausgabe in glänzend mit einer Reihe Wert einzustellen:glänzend sliderInput Bereich Minimal- und Maximalwerte
(wobei m eine beliebige Matrix ist)
#ui.R
sliderInput(inputId="adjust", label="Choose adjacency threshold", value=c(0.001, 0.9), min=0.0001, max=1),
plotOutput("hist")
#server.R
df<-reactive({
idx = m > min(input$adjust) & m < max(input$adjust)
data.frame(
id = row(m)[idx],
value = m[idx])
})
output$hist<-renderPlot({hist(df()$values)})
aber dies scheint nicht zu Beeinflussen Sie das Histogramm - es rendert wieder, wenn ich den Schieberegler umschalte, aber es ist immer gleich ... es dauert sehr lange und es scheint nur alle Werte zu berücksichtigen.
Weiß jemand, wie man das funktioniert?
wenn ich versuche, die min Schieberegler zum Drucken/max wert- kommt nichts zur Seite:
#ui.R
verbatimTextOutput("x")
#server
output$x<-renderPrint({min(input$adjust)})
Daher könnte ich dies den völlig falschen Weg nähern ... Wer weiß, wie dies zu tun?
FULL Beispiel
library(shiny)
runApp(list(ui = fluidPage(sliderInput(inputId="adjust", label="Choose adjacency threshold", value=c(0.001, 0.9), min=0.0001, max=1),
plotOutput("hist")
server=function(input, output){
adjacentmat<-reactive({adjacency(dat)})
data<-reactive({
adj_mat<-adjacentmat()
adj_mat[adj_mat < input$adjust] <- 0
m<-adj_mat
idx = m > min(input$adjust) & m < max(input$adjust)
data.frame(
source = row(m)[idx],
target = col(m)[idx],
corr = m[idx])
})
output$hist<-renderPlot({hist(data()$corr)})
}
)
die dat Variable mit dem folgenden Code erzeugen:
library('dplyr')
set.seed(1)
# generate a couple clusters
nodes_per_cluster <- 30
n <- 10
nvals <- nodes_per_cluster * n
# cluster 1 (increasing)
cluster1 <- matrix(rep((1:n)/4, nodes_per_cluster) +
rnorm(nvals, sd=1),
nrow=nodes_per_cluster, byrow=TRUE)
# cluster 2 (decreasing)
cluster2 <- matrix(rep((n:1)/4, nodes_per_cluster) +
rnorm(nvals, sd=1),
nrow=nodes_per_cluster, byrow=TRUE)
# noise cluster
noise <- matrix(sample(1:2, nvals, replace=TRUE) +
rnorm(nvals, sd=1.5),
nrow=nodes_per_cluster, byrow=TRUE)
dat <- rbind(cluster1, cluster2, noise)
colnames(dat) <- paste0('n', 1:n)
rownames(dat) <- c(paste0('cluster1_', 1:nodes_per_cluster),
paste0('cluster2_', 1:nodes_per_cluster),
paste0('noise_', 1:nodes_per_cluster))
Dank Carl (ich habe das Q unter VOLLSTÄNDIGES BEISPIEL aktualisiert), das tatsächlich funktioniert, was bedeutet, dass mein Code gültig war, aber die Pipeline dauert jetzt wirklich lange mit der zusätzlichen Anforderung für den Wert von 'm' unter einem bestimmten Schwellenwert zu sein wie auch über einem anderen ... gibt es einen Weg, um dies zu umgehen // –