【发布时间】:2021-10-29 14:30:50
【问题描述】:
我正在尝试创建一个闪亮的应用程序,用户可以在其中上传 csv 文件,输入数值,将数值添加到 csv 中的特定数据列,然后将原始 + 计算数据保存在表格中。我使用一个简单的 csv 文件在下面生成了一个简化的 Shiny 脚本。
当我尝试运行应用程序时,我收到错误:
mutate() 输入 sum 存在问题。
[31mx[39m 二元运算符的非数字参数
[34mi[39m 输入sum 是A + C。
我尝试查找一些如何解决此问题的示例,但无法找到利用 eventReactive() 来使用新计算的数据更新数据表的内容。非常感谢任何帮助。
图书馆(闪亮) 库(dplyr)
ui
# Application title
titlePanel("Test"),
# Show a plot of the generated distribution
mainPanel(
fileInput(
inputId = "csvFile",
label = "Upload csv file",
accept = c(".csv")),
uiOutput("C"),
uiOutput("D"),
tableOutput("modifiedData")
)
)
服务器
output$C <- renderUI(
{numericInput("C", "Variable C", 0)}
)
output$D <- renderUI(
{numericInput("D", "Variable D", 0)}
)
userData <- eventReactive(input$csvFile,
{
req(input$csvFile)
raw_df <- read.csv(input$csvFile$datapath)
calc_df <- raw_df %>%
mutate(sum = A + C)
})
output$modifiedData <- renderTable({userData()})
}
shinyApp(ui = ui, server = server)
【问题讨论】:
-
您的意思是要将作为单个数值的
C添加到A列的所有6 行吗?在这种情况下,您需要mutate(sum = A + input$C)