r - 错误:`data` 必须是数据框,或其他可被`fortify()`强制的对象
问题描述
我正在使用 2 个输入进行闪亮的可视化。
数据集:
est_popai <- data.frame(concat = c("A_1","B_1","C_1","A_2","B_2","C_2","A_1","B_1","C_1","A_2","B_2","C_2","A_1","B_1","C_1","A_2","B_2","C_2","A_1","B_1","C_1","A_2","B_2","C_2"),
variables = c("quantity","quantity","quantity","quantity","quantity","quantity","price","price","price","price","price","price","quality","quality","quality","quality","quality","quality","size","size","size","size","size","size"),
values = round(runif(24, 5.0, 7.5),2)
)
用户界面:
ui <- fluidPage(
headerPanel(
h1("Combinacao de atributos")
),
sidebarPanel(
selectInput("xcol"," Variavel X", unique(est_popai$variable),
selected = 'price'),
selectInput("ycol"," Variavel y", unique(est_popai$variable),
selected = 'size')
),
mainPanel(
plotOutput("plot1")
)
)
服务器:
server <- function(input, output) {
selectData <- reactive ({
est_popai[est_popai$variable == input$xcol | est_popai$variable == input$ycol,] %>%
unique() %>%
spread(variable,value)
})
output$plot1 <- renderPlot({
ggplot(data = selectData, aes(x = input$xcol, y = input$ycol)) +
geom_point()
})
}
跑:
shinyApp(ui = ui, server = server)
当我运行整个代码时,我收到了以下错误消息:
警告:错误:
data
必须是数据帧,或其他对象强制fortify()
,而不是具有类 reactiveExpr/reactive 的 S3 对象 [没有可用的堆栈跟踪]
我尝试添加as.data.frame()
功能但没有成功。有人可以帮我解决这个错误,我一直在寻找一段时间。
解决方案
从 OP 复制粘贴。
请参阅下面的更正脚本。错误分为 3 个部分:
1- 我忘记在数据 ggplot 函数中添加 ()
data = selectData()
2- 对象有不同的名称,我忘记了里面的
s
字母variable
和value
对象3-
aes()
应该aes_string()
在ggplot
功能
ui <- fluidPage(
headerPanel(
h1("Combinacao de atributos")
),
sidebarPanel(
selectInput("xcol"," Variavel X", unique(est_popai$variables),
selected = 'price'),
selectInput("ycol"," Variavel y", unique(est_popai$variables),
selected = 'size')
),
mainPanel(
plotOutput("plot1")
)
)
server <- function(input, output) {
selectData <- reactive ({
est_popai[est_popai$variables == input$xcol | est_popai$variables == input$ycol,] %>%
unique() %>%
spread(variables,values)
})
output$plot1 <- renderPlot({
ggplot(data = selectData(), aes_string(x = input$xcol, y = input$ycol)) +
geom_point()
})
}
shinyApp(ui = ui, server = server)
推荐阅读
- mapping - 英国地区未映射 Power BI
- debugging - Intellij IDEA 调试器故障:“this”不可用
- postgresql - Terraform 导入 Kubernetes 密钥
- c# - 如何在远离数据库文件的情况下运行程序?
- mysql - 如何在 Azure MySQL 中更改 connect_timeout
- typescript - 具有类验证器的高级条件(可能)?
- react-native - React Native gradlew clean commant 不起作用
- javascript - 广告横幅未在 Chrome 中显示
- reactjs - 从 cellrenderer 组件调用 ag-grid-react 组件的方法
- vba - VBA 沿着一行循环