Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html R:如何在数据框中嵌入sliderInputs/selectInputs和单选按钮?(错误:无法将类“shinny.tag”强制为data.frame)_Html_R_Shiny - Fatal编程技术网

Html R:如何在数据框中嵌入sliderInputs/selectInputs和单选按钮?(错误:无法将类“shinny.tag”强制为data.frame)

Html R:如何在数据框中嵌入sliderInputs/selectInputs和单选按钮?(错误:无法将类“shinny.tag”强制为data.frame),html,r,shiny,Html,R,Shiny,我需要在矩阵中嵌入不同类型的输入。对于textInput()和NumericiInput(),它可以正常工作,但是我找不到一种方法来处理selectInput()、sliderInput()和radioButton() 我可以用HTML指定textInput和NumericiInput,比如 paste0("<input id='num", 1:2, "' class='shiny-bound-input' type='text' value=''>") 我得到的错误是:无法将类“

我需要在矩阵中嵌入不同类型的输入。对于textInput()和NumericiInput(),它可以正常工作,但是我找不到一种方法来处理selectInput()、sliderInput()和radioButton()

我可以用HTML指定textInput和NumericiInput,比如

paste0("<input id='num", 1:2, "' class='shiny-bound-input' type='text' value=''>")
我得到的错误是:无法将类“shinny.tag”强制为data.frame。所以我推断我应该在HTML->中指定它们,有人知道怎么做吗

下面是代码(您可以看到下面的图片):

ui=pageWithSidebar(
headerPanel(“测试”),
侧栏面板(
helpText('某些类型的输入可以包含在矩阵中,而某些类型的输入不能')
),
主面板(
uiOutput('matrix_text'),
uiOutput('matrix_num'),
uiOutput(“矩阵_滑块”),
uiOutput('matrix_select'),
uiOutput(“矩阵\单选按钮”)
)
)
服务器=功能(输入、输出){

输出$matrix_text我找到了解决方案。对于ex的单选按钮,代码为:

paste0("<div class='control-group shiny-input-radiogroup shiny-bound-input' id='radio",1:2,"'>
    <label class='control-label' for=='radio",1:2,"'>Individual</label>
    <label class='radio'>
    <input id=='radio1",1:2,"' name='radio",1:2,"' type='radio' value='cyl'>
    <span>Cylinders</span>
    </label>
    <label class='radio'>
    <input id=='radio2",1:2,"' name='radio",1:2,"' type='radio' value='am'>
    <span>Transmission</span>
    </label>
    </div>")
paste0(“
个人
圆筒
传输
")
可通过右键单击带有单选按钮的网页并选择“检查元素”来获取

希望这能帮助其他人

lapply(1:2, function(i) sliderInput(inputId = paste0("sl", i), label = "", min = 0, max =100, value = 50)). 
ui = pageWithSidebar(
headerPanel("TEST"),
  sidebarPanel(
    helpText('Some types of input can be included in a matrix and some do not')
    ),
  mainPanel(
    uiOutput('matrix_text'),
    uiOutput('matrix_num'),
    uiOutput('matrix_slider'),
    uiOutput('matrix_select'),
    uiOutput('matrix_radioButtons')
  )
)

server = function(input,output){

  output$matrix_text <- renderTable({

    matrix_input <- paste0("<input id='num", 1:2, "' class='shiny-bound-input' type='text' value=''>")
    matrix <- data.frame(matrix_input)

    row.names(matrix) <- c("r 1","r 2")
    colnames(matrix) <- c('C 1')
    matrix
  },sanitize.text.function = function(x) x)


 output$matrix_num <- renderTable({

   matrix_input <- paste0("<input id='num", 1:2, "' class='shiny-bound-input' type='number' value=''>")
   matrix <- data.frame(matrix_input)

   row.names(matrix) <- c("r 1","r 2")
   colnames(matrix) <- c('C 1')
   matrix
 },sanitize.text.function = function(x) x)


output$matrix_slider <- renderTable({

  matrix_input <- lapply(1:2, function(i) sliderInput(inputId = paste0("sl", i), label = "", min = 0, max =100, value = 50))  

  matrix <- data.frame(matrix_input)

},sanitize.text.function = function(x) x)

output$matrix_select <- renderTable({

  matrix_input <- lapply(1:2, function(i) selectInput(inputId = paste0("select", i), label = "", choices = c("Cylinders" = "cyl","Transmission" = "am")))  

  matrix <- data.frame(matrix_input)

},sanitize.text.function = function(x) x)

output$matrix_radioButtons <- renderTable({

  matrix_input <- lapply(1:2, function(i) radioButtons(inputId = paste0("radio", i), label = "",choices= c("Cylinders" = "cyl","Transmission" = "am"), selected = NULL))  

  matrix <- data.frame(matrix_input)

},sanitize.text.function = function(x) x)


}    

runApp(list(ui = ui, server = server))  
paste0("<div class='control-group shiny-input-radiogroup shiny-bound-input' id='radio",1:2,"'>
    <label class='control-label' for=='radio",1:2,"'>Individual</label>
    <label class='radio'>
    <input id=='radio1",1:2,"' name='radio",1:2,"' type='radio' value='cyl'>
    <span>Cylinders</span>
    </label>
    <label class='radio'>
    <input id=='radio2",1:2,"' name='radio",1:2,"' type='radio' value='am'>
    <span>Transmission</span>
    </label>
    </div>")