So habe ich diesen Datenrahmen ...Auswählen von Zeilen in Datatable-Daten in Shiny aus einer anderen Tabelle zeigen
df1 <- read.table(text="
Project Counts Inventory
A 25 100
B 20 120
C 10 50
",header=TRUE,stringsAsFactors = FALSE)
und diesen Datenrahmen ....
df2 <- read.table(text="
Project Sub_Project Counts Date
A 1 5 2017-05-01
A 2 10 2017-05-01
A 2 10 2017-06-01
B 1 40 2017-05-01
B 1 20 2017-06-01
B 1 20 2017-07-01
B 2 40 2017-05-01
C 1 15 2017-05-01
C 1 35 2017-06-01
",header=TRUE,stringsAsFactors = FALSE)
In glänzenden library(DT)
und library(ggplot2)
mit Ich mache eine renderDataTable
von df1
, die es Ihnen ermöglicht, jede Zeile auszuwählen, und wenn jede Zeile ausgewählt ist, beginnt sie, eine andere Datentabelle anzuzeigen. Wenn ich auf eine Zeile in df1
klicke, wird mir die neue Datentabelle, die gerendert wird, eine Untermenge von df2
geben, die nur die Informationen des ausgewählten Projekts anzeigt, die Zählungen zusammenfasst und sie nach Sub_Project organisiert. wie folgt aus (wenn Sie auf Projekt A von df1
klicken waren:
df3 <-read.table(text="
Project Sub_Project Counts
A 1 5
A 2 20
",header=TRUE,stringsAsFactors = FALSE)
Die eigentliche Funktionalität von dem, was ich bin versucht, Werke zu tun, ich weiß nur nicht, wie logisch programmieren, was ich will ... hier ist meine ganze app
library(shiny)
library(shinydashboard)
library(ggplot2)
library(DT)
df1 <- read.table(text="
Project Counts Inventory
A 25 100
B 20 120
C 10 50
",header=TRUE,stringsAsFactors = FALSE)
df2 <- read.table(text="
Project Sub_Project Counts Date
A 1 5 2017-05-01
A 2 10 2017-05-01
A 2 10 2017-06-01
B 1 40 2017-05-01
B 1 20 2017-06-01
B 1 20 2017-07-01
B 2 40 2017-05-01
C 1 15 2017-05-01
C 1 35 2017-06-01
",header=TRUE,stringsAsFactors = FALSE)
ui <- dashboardPage(
dashboardHeader(title = 'Dashboard'),
dashboardSidebar(),
dashboardBody(
tabsetPanel(
tabPanel('Sequencing',
fluidRow(
column(12,
dataTableOutput('project_table'),
dataTableOutput('subproject_table'))
)
)
)
)
)
server <- function(input, output) {
output$project_table <- renderDataTable(df1, options = list(pageLength = 10))
output$subproject_table <- renderDataTable({
s = input$project_table_rows_selected
if(length(s)) df1[s, , drop=FALSE]})
}
shinyApp(ui, server)
In der 'df3' scheint die 'counts' 20 aus der Reihe zu kommen, wo 'Project' auf 'df2' steht – akrun
@akrun nein, es ist das Zusammenfassen der Counts aus dem selben Sub_Project in Project A. Es ignoriert also Datumsinformationen und hält 'df1' von Project organisiert und summiert dann die Counts nach ähnlichen Sub_Projects ... – Naji