我正在尝试构建一个文件处理器,我可以在其中上传原始文件,单击按钮并获取排序报告。因此,在这种情况下,我想查看不同行的域性能,因此它拆分数据集并写入 .xlsx 文件,其中数据根据行拆分每个选项卡。
它在 RStudio 上运行良好,但是当我发布它时,出现以下错误。2 中的任何一个:
[[下标超出范围无堆栈跟踪可用错误
如果参数中的警告错误是长度为零,则没有堆栈跟踪可用
library(openxlsx)
library(readxl)
library(writexl)
library(dplyr)
library(magrittr)
library(lubridate)
library(shiny)
ui <- fluidPage(
titlePanel("Domain Performance"),
sidebarLayout(
sidebarPanel(
fileInput('file1', 'Upload file',
accept=c('text/csv',
'text/comma-separated-values,text/plain',
'.csv','.xlsx'))
),
mainPanel(
#actionButton(inputId = "run",label = "Run the Code"),
downloadButton('sortspend',"Spend"),
tableOutput("outdata1")
)
))
server <- function(input, output) {
options(shiny.maxRequestSize=90*1024^2)
output$outdata1 <- renderTable({
req(input$file1)
if(is.null(input$file1)) {
return()
}
else {
input$file1
}
})
spenddom <-reactive({
req(input$file1)
dspec <- input$file1
domain_raw <- read.csv(dspec$datapath,header = TRUE)
linenames = unique(domain_raw['Line'])
lineids = unique(domain_raw$`Line Id`)
for (i in seq_along(lineids)){
ddf <-domain_raw%>% select(`Line Id`,Domain,`Advertiser Spending`,Impressions,Clicks,Conversion,Line)%>%
filter(`Line Id` == lineids[i])%>%
group_by(Line,Domain)%>%
summarise(Spend = sum(`Advertiser Spending`), Imp = sum(Impressions), Clicks = sum(Clicks), Conversions = sum(Conversion))%>%
mutate(CPA = Spend/Conversions)%>%arrange(desc(Spend))
}
})
tabcreator <- reactive({
req(input$file1)
dspec <- input$file1
domain_raw <- read.csv(dspec$datapath,header = TRUE)
linenames = unique(domain_raw['Line'])
lineids = unique(domain_raw$`Line Id`)
for (i in seq_along(lineids)){
tabname <- lineids[i]
}
})
output$sortspend<-downloadHandler(
filename = function(){paste0("domainperfdl",".xlsx")},
content = function(fname){
write.xlsx(spenddom(),fname,sheetName = tabcreator())
},
contentType = "application/xlsx"
)
}
shinyApp(ui=ui, server=server)
我试图了解我在这里做错了什么。这是我第一次在 R 中使用 for 循环。