Я практикуюсь с R и блестящими предметами. Я могу показать фрейм данных и диаграмму рассеяния, но я хочу, чтобы они взаимодействовали. В частности, я хочу выбрать несколько строк из df и увидеть некоторые точки другим цветом или больше. Я использовал этот как вдохновение. Проблема в том, что моя страница не работает. Вот мой код: КЛИЕНТ:
library(shiny)
ui <- fluidPage(
h1('My dataset'),
selectInput("select", "Selezona le colonne da mostrare:", names(chocolate), multiple = TRUE),
dataTableOutput('mytable'),
hr(),
# [...]
h2('Cocoa Percentage and Rating - Regression Model'),
sidebarLayout(
sidebarPanel(
checkboxInput("Regression", "Regression", value=FALSE),
checkboxInput("meanCocoa", "Percentuale media cacao", value=FALSE),
checkboxInput("meanRating", "Rating medio", value=FALSE)
),
mainPanel(
plotOutput("distPlot4", click="plot_click", brush="plot_brush"),
verbatimTextOutput("info4"),
verbatimTextOutput("myBrushInfo"),
verbatimTextOutput("brushSelection")
)
)
)
СЕРВЕР
server <- function(input, output, session){
# dataset
output$mytable = renderDataTable({
columns = names(chocolate)
if (!is.null(input$select)) {
columns = input$select
}
chocolate[,columns,drop=FALSE]
})
modelloRL <- lm(Rating ~ CocoaPerc, data=chocolate)
d <- density(chocolate$CocoaPerc)
# scatterplot percentage - rating
output$distPlot4 <- renderPlot({
s = input$mytable_rows_selected
par(mar=c(4,4,1,.1))
plot(chocolate$CocoaPerc, chocolate$Rating, xlab="Percentuale di cacao", ylab="Rating",
bg="chocolate", col="black", cex=1.1, pch=21, frame=FALSE)
if (input$Regression){
abline(modelloRL, lwd=2)
}
if (input$meanCocoa){
abline(v=mean(chocolate$CocoaPerc), lwd=2, col="green")
}
if (input$meanRating){
abline(h=mean(chocolate$Rating), lwd=2, col="purple")
}
if (length(s)) points(chocolate[s, , drop = FALSE], pch = 19, cex = 2)
})
}
shinyApp(ui, server)
Я могу выбирать строки из своего набора данных, но на диаграмме рассеяния ничего не происходит. Что я делаю не так?
Вот образец из набора данных (я ищу, как использовать dput, это контрольный пример)
6 A. Morin Carenero France 2.75 Criollo Venezuela 70.0 3
8 A. Morin Sur del Lago France 3.50 Criollo Venezuela 70.0 4
9 A. Morin Puerto Cabello France 3.75 Criollo Venezuela 70.0 4
12 A. Morin Madagascar France 3.00 Criollo Madagascar 70.0 3
18 A. Morin Chuao France 4.00 Trinitario Venezuela 70.0 4
25 Acalli Tumbes, Norandino U.S.A. 3.75 Criollo Peru 70.0 4
26 Adi Vanua Levu Fiji 2.75 Trinitario Fiji 60.0 3
27 Adi Vanua Levu, Toto-A Fiji 3.25 Trinitario Fiji 80.0 3
28 Adi Vanua Levu Fiji 3.50 Trinitario Fiji 88.0 4
29 Adi Vanua Levu, Ami-Ami-CA Fiji 3.50 Trinitario Fiji 72.0 4
30 Aequare (Gianduja) Los Rios, Quevedo, Arriba Ecuador 2.75 Forastero (Arriba) Ecuador 55.0 3
где атрибуты:
str(chocolate)
'data.frame': 884 obs. of 8 variables:
$ CompanyMaker : Factor w/ 416 levels "A. Morin","Acalli",..: 1 1 1 1 1 2 3 3 3 3 ...
$ SpecificBeanOriginOrBarName: Factor w/ 1039 levels "\"heirloom\", Arriba Nacional",..: 175 923 805 567 213 989 1002 1004 1002 1003 ...
$ CompanyLocation : Factor w/ 60 levels "Amsterdam","Argentina",..: 19 19 19 19 19 57 17 17 17 17 ...
$ Rating : num 2.75 3.5 3.75 3 4 3.75 2.75 3.25 3.5 3.5 ...
$ BeanType : Factor w/ 42 levels "","Â ","Amazon",..: 10 10 10 10 35 10 35 35 35 35 ...
$ BroadBeanOrigin : Factor w/ 101 levels "","Â ","Africa, Carribean, C. Am.",..: 93 93 93 48 93 57 28 28 28 28 ...
$ CocoaPerc : num 70 70 70 70 70 70 60 80 88 72 ...
$ Rat : num 3 4 4 3 4 4 3 3 4 4 ...