У меня есть назначение r.Я делаю интерактивный сюжет для спортивной команды, и когда я пытаюсь подсчитать среднее количество забитых голов, я получаю одну и ту же ошибку (Ошибка в aggregate.data.frame: аргументы должны иметь одинаковую длину трассировки стека (самая внутренняя в первую очередь)).я попытался сделать переменную tp в качестве фрейма данных, и я попытался использовать функцию tapply вместо агрегата, но я продолжал получать ту же ошибку.это мой пользовательский интерфейс
library(plotly)
library(ggplot2)
library(plotrix)
ui <- fluidPage(
fluidRow(
column ( width = 3,
h4(span(tagList(icon("filter")), "Select team")),
selectizeInput('team', "", choices = shots$TeamName, selected = TRUE),
br(),
h4(span(tagList(icon("filter")), "Select season")),
selectizeInput('season', "", choices = shots$SeasonNr, selected = TRUE),
br()
)),
plotlyOudataut("pos1")
)
, а моя серверная часть:
server <- function(input,oudataut, session){
observeEvent(c(input$team), {
team1 <- input$team
SeasonTx <- input$season
tp <- sqldf(sprintf("select Fullname, Percentage, ShotType, ShotsMade, ShotsNumber, TrainingDate, Position from shots where TeamName is '%s'", team1, "AND SeasonText is '%s'", SeasonTx))
percentageColumn<- aggregate(tp[,4:5], list(tp$TeamName, tp$Position), sum)
percentageColumn$average <- ((percentageColumn$ShotsMade/percentageColumn$ShotsNumber)*100)
colnames(percentageColumn) <- c("Team", "Position", "ShotsMade", "ShotsNumber", "Average")
oudataut$pos1 <-renderPlotly({
plot_ly(x = ~percentageColumn$Position, y = ~percentageColumn$Average, type = 'scatter', mode = 'lines')%>%
layout(title = 'The Average score of the whole team per position',
xaxis = list(title = 'position',dtick=1),
yaxis = list (title = 'Percentage'),xasis=position)
}]
})}
shinyApp(ui, server)
Кто-нибудь может увидеть ошибку?заранее спасибо