【问题标题】:Getting malformed output in Shiny在 Shiny 中获取格式错误的输出
【发布时间】:2018-12-06 15:31:41
【问题描述】:

有一个我在 Shiny 服务器函数中读入的数据文件。我想显示用户使用下拉菜单选择的两列的频率表。我收到错误“范围 0 的表”。我查看了 R 错误 - 范围 0 的表和无法解决表问题,但我已正确导入数据并且列名也匹配。当我在控制台中运行时,同样的代码行。

这是我的代码:

shinyServer(function(input, output) {
  output$courseData = renderTable( {


    data = read.csv(file = 'FourCourseTableLetterGrades_POLISHED.tsv', sep = '\t', header = TRUE)
    c1 = input$course1
    c2 = input$course2
    tbl = table(data[[c1]], data[[c2]])
    tbl

 }

)
}

)

这是输出现在的样子:

我希望它与您在控制台中运行相同代码时获得的输出一样。像这样:

我的代码有什么问题?另外,我不知道名称Var1Var2Freq 是从哪里来的,我应该在哪里更改它们。

【问题讨论】:

    标签: r shiny shiny-server


    【解决方案1】:

    renderTable 将在将数据帧的任何输入发送到 UI 之前将其更改为数据帧,因此您最终会得到类似data.frame(table(mtcars$cyl, mtcars$gear)) 的内容。我们可以试试

    output$courseData = renderTable(rownames=TRUE, {
    data = mtcars
    c1 = input$course1
    c2 = input$course2
    tbl = as.data.frame.matrix(table(data[[c1]], data[[c2]]))
    tbl})
    }
    

    【讨论】:

    • 多谢了,能不能也加个列名,让它更漂亮点?像彩色混淆矩阵?
    猜你喜欢
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 2021-01-09
    相关资源
    最近更新 更多