【发布时间】:2020-12-02 20:25:04
【问题描述】:
我想知道如何解决 case_when 中的整数和双向量问题。我需要双向量作为我的数字输入,但是,“case_when”总是给我一个错误,比如“x 必须是整数向量,而不是双向量”。
当我将“TRUE ~ 0”更改为“TRUE ~0L”时,它只允许我输入整数输入
我需要通货膨胀输入,例如 0.05、0.01,而不是整数,例如 1,2 3
几天来,我一直对这个错误感到沮丧。谁能帮我解决这个问题?
谢谢!
#Load packages
library(shiny)
library(data.table)
library(dplyr, warn.conflicts = FALSE)
library(DT)
#>
#> Attaching package: 'DT'
#> The following objects are masked from 'package:shiny':
#>
#> dataTableOutput, renderDataTable
library(tidyr)
df<-data.frame('provider'="CVS", 'year'=c(2020,2021,2022,2023,2024,2025))
# Define UI for app that draws a histogram ----
ui <- fluidPage(
# App title ----
titlePanel("Hello Shiny!"),
# Sidebar layout with input and output definitions ----
sidebarLayout(
# Sidebar panel for inputs ----
sidebarPanel(
tabsetPanel(
tabPanel("Brand Inf",
numericInput("b1","Brand 1", 0, min = NA, max = NA),
numericInput("b2","Brand 2", 0, min = NA, max = NA),
numericInput("b3","Brand 3", 0, min = NA, max = NA)),
tabPanel("GFR",
numericInput("p1","GFR 1", 0, min = NA, max = NA),
numericInput("p2","GFR 2", 0, min = NA, max = NA),
numericInput("p3","GFR 3", 0, min = NA, max = NA))),
width = 2),
# Main panel for displaying outputs ----
mainPanel(
DT::dataTableOutput("table"))
))
# Define server logic required to draw a histogram ----
server <- function(input, output) {
DF<-function(var1, var2, var3,var4, var5, var6){
var1<-enexpr(var1)
var2<-enexpr(var2)
var3<-enexpr(var3)
var4<-enexpr(var4)
var5<-enexpr(var5)
var6<-enexpr(var6)
df<-df %>% rowwise %>%
mutate(inflation= case_when(year== 2020 ~ !!var1, year == 2021 ~ !!var2, year == 2022 ~ !!var3, TRUE ~ 0),
GFR=case_when(year== 2020 ~ !!var4, year == 2021 ~ !!var5, year == 2022 ~ !!var6, TRUE ~ 0))
}
data<-reactive({
DF(input,input$b1,input$b2,input$b3,input$p1,input$p2,input$p3)
})
#plan awp table
output$table <- DT::renderDataTable({
DATA <- data()
})
}
shinyApp(ui, server)
静态 R Markdown 文档不支持闪亮的应用程序
DF(0.05,0.05,0.05,0.01,0.01,0.01)
#> Error in DF(0.05, 0.05, 0.05, 0.01, 0.01, 0.01): could not find function "DF"
DF
#> Error in eval(expr, envir, enclos): object 'DF' not found
由reprex package (v0.3.0) 于 2020-08-12 创建
【问题讨论】:
-
你确定你的函数
DF没有问题吗?我认为您需要像这样更改参数:DF<-function(df,var1, var2, var3,var4, var5, var6)*注意我在开头添加了额外的df。此外,您可能需要在末尾添加return(df)。