我不知道为什么当我运行我的应用程序时我的ggplot没有出现。它似乎使用情节,它的工作原理。但是使用ggplot,什么都没有出现。没有图表!我尝试使用print()
而没有它,没有结果。
我的应用程序我导入了一个csv文件,并从中我绘制了一个图表。 你能帮帮我吗?
#Server
server <- function(input, output, session) {
# added "session" because updateSelectInput requires it
data <- reactive({
req(input$file1) # require that the input is available
df <- read.csv(input$file1$datapath,
header = input$header,
sep = input$sep,
quote = input$quote)
updateSelectInput(session, inputId = 'xcol', label = 'X Variable',
choices = names(df), selected = names(df)[sapply(df, is.numeric)])
updateSelectInput(session, inputId = 'ycol', label = 'Y Variable',
choices = names(df), selected = names(df)[sapply(df, is.numeric)])
return(df)
})
output$contents <- renderTable({
data()
})
output$MyPlot <- renderPlot({
x <- data()[, c(input$xcol, input$ycol)]
p <- ggplot(x, aes(input$xcol,input$ycol))
p <- p + geom_line() #+ geom_point()
print(p)
# plot(mydata, type = "l",
# xlab = input$xcol,
# ylab = input$ycol)
})
# Generate a summary table of the data uploaded
output$summary <- renderPrint({
y <- data()
summary(y)
})
}
# Create Shiny app
shinyApp( ui = ui, server = server)
答案 0 :(得分:0)
您的代码中存在一些问题:SMDeepExtract <- function(data, col = c("p.value", "sdiff")){
cbind(
t(sapply(match_balance[[ "BeforeMatching" ]], "[", col)),
t(sapply(match_balance[[ "AfterMatching" ]], "[", col))
)
}
# extract
res <- SMDeepExtract(match_balance)
# check output
head(res)
# p.value sdiff p.value sdiff
# [1,] 8.603228e-05 22.25849 0.06469923 5.628461
# [2,] 0.2502077 5.397308 0.02982693 4.162643
# [3,] 0.0186553 12.26719 0.0007511647 3.778702
# [4,] 0.4295341 -4.354516 0.04536081 1.792715
# [5,] 6.922152e-11 39.98226 1 0
# [6,] 0.009223748 12.59753 0.04536081 0.9887884
和input$xcol
包含字符值,因此您必须在input$ycol
函数中使用aes_string
。此外,您需要直接ggplot
和tabsetPanel
(小问题)。
除此之外,在您的sidebarLayout
被动反应中,您使用了在您的用户界面中找不到的data
和sep
输入,从而导致错误。如果我评论它们,一切都按预期工作。对于测试,我使用了quote
:
write.csv(diamonds, file = "diamonds.csv")