Я пытаюсь создать приложение, которое позволяет мне вводить числовые значения, и из этих введенных значений обновляется строка ниже, причем каждое значение является суммой значений соответствующего столбца
Например, если я ввел значения в первой таблице, в первом столбце с именем «ENE», строка ниже в столбце с именем «ENE» является суммой этих значений и изменяется каждый раз, когда я изменяю значения в первой таблице.
Я пробовал много разных вещей, но я не смог заставить приложение сделать это так, как я хотел
observeEvent(
input$table3$changes$changes,
{
xi=input$table3$changes$changes[[1]][[1]]
datavalues$data <- hot_to_r(input$table3)
datavalues$data[xi+1,3] = datavalues$data[xi+1,1] + datavalues$data[xi+1,2]
}
)
Еще одна вещь, которую я пытаюсь сделать, это заставить приложение создавать время ряды, основанные на значениях второй таблицы ниже
Вот пример того, что я пытаюсь сделать
Col1<-c("","","","Región","","","","Usuarios Especiales","")
Col2<-c("Guyana","Capital","Centro Occidente","Ocidente","Sur Occidente","Oriente",
"Insular","Hidrocapital e Hidrocentro, Minera Loma de Niquel","")
Col3<-c(replicate(8,0),0)
Col3.1<-Col3
Col3.2<-Col3
Col3.3<-Col3
Col3.4<-Col3
Col3.5<-Col3
Col3.6<-Col3
Col3.7<-Col3
Col3.8<-Col3
Col3.9<-Col3
Col3.10<-Col3
Col3.11<-Col3
Tabla_Suma=data.frame("Usuarios"=Col1," "=Col2,"ENE"=Col3,"FEB"=Col3.1,"MAR"=Col3.2,"ABR"=Col3.3,"MAY"=Col3.4,"JUN"=Col3.5,"JUL"=Col3.6,"AGO"=Col3.7,"SEP"=Col3.8,"OCT"=Col3.9,"NOV"=Col3.10,"DIC"=Col3.11)
Suma=data.frame("ENE"=sum(Col3),"FEB"=sum(Col3.1),"MAR"=sum(Col3.2),"ABR"=sum(Col3.3),"MAY"=sum(Col3.4),"JUN"=sum(Col3.5),"JUL"=sum(Col3.6),"AGO"=sum(Col3.7),"SEP"=sum(Col3.8),"OCT"=sum(Col3.9),"NOV"=sum(Col3.10),"DIC"=sum(Col3.11))
library(shiny)
library(rhandsontable)
library(plotly)
# Define UI for application that draws a histogram
ui <- fluidPage(
# Application title
titlePanel("Plot Time Series"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
helpText("Plot time series with input values on table")
),
# Show a plot of the generated distribution
mainPanel(
rHandsontableOutput("table2"),
h3("Max power Demand (MW)a/"),
rHandsontableOutput("table3"),
br(),br(),
plotlyOutput("plot_four")
)
)
)
server <- function(input, output,session) {
datavalues <- reactiveValues(data=Suma)
output$table2 <-renderRHandsontable({
if(is.null( Tabla_Suma )){return()}
rhandsontable( Tabla_Suma , showToolbar=TRUE , search=TRUE , rowDrag = TRUE,
columnDrag = TRUE, rowResize = TRUE, minDimension = c(100, 100))
})
datavalues <- reactiveValues(data=Suma)
output$table3 <-renderRHandsontable({
if(is.null( datavalues$data )){return()}
rhandsontable( datavalues$data , showToolbar=TRUE , search=TRUE , rowDrag = TRUE,
columnDrag = TRUE, rowResize = TRUE, minDimension = c(100, 100))
})
observeEvent(
input$table3$changes$changes, # observe if any changes to the cells of the rhandontable
{
xi=input$table3$changes$changes[[1]][[1]]
datavalues$data <- hot_to_r(input$table3)
datavalues$data[xi+1,3] = datavalues$data[xi+1,1] + datavalues$data[xi+1,2] #
}
)
output$plot_four <-renderPlotly({
today <- Sys.Date()
tm <- seq(0, 350, by = 5)
x <- today + tm
y <- rnorm(length(x))
plot_ly(x = ~x, y = ~y, mode = 'lines', text = paste(tm, "days from today"))%>%
layout(title = "Time series",
xaxis = list(title = "Months"),
yaxis = list (title = "MW"))
})
}
shinyApp(ui = ui, server = server)
Заранее спасибо за вашу помощь.