我正在尝试在 Shiny 的数据框中计算一个新变量,该变量是有条件地根据另一个变量计算的。
这是我正在尝试做的一个小例子:
mydata <- data.frame(cbind(x = 1, y = 1:10))
value <- 10 #from user input
mydata$z[mydata$y >= 5] <- mydata$y[mydata$y >= 5] + value
mydata$z[mydata$y < 5] <- mydata$y[mydata$y < 5] - value
这是我的 ui.R 文件:
#Library
library("shiny")
# Define UI for miles per gallon application
shinyUI(pageWithSidebar(
# Application title
headerPanel("Test"),
sidebarPanel(
numericInput("value", "Enter Value:", 10)
),
mainPanel(
tableOutput("table")
)
)
)
这是我的 server.R 文件:
#Libraries
library(shiny)
#Load Data
mydata <- data.frame(cbind(x = 1, y = 1:10))
# Define server logic
shinyServer(function(input, output) {
mydata$z[mydata$y >= 5] <- reactive({
mydata$y + input$value
})
mydata$z[mydata$y < 5] <- reactive({
mydata$y - input$value
})
output$table <- renderTable({
mydata
})
})
使用此 Shiny 代码,我收到以下错误:
mydata$z[mydata$y >= 5] <- reactive({ : 向量分配中的类型/长度无效 (closure/0) 中的错误
我尝试了不同的子集和分配方式,但我被卡住了。非常感谢您的帮助!