Вот мой код:Блестящие - участки не делают - нет кода ошибки
download.file("http://pub.data.gov.bc.ca/datasets/176284/BC_Liquor_Store_Product_Price_List.csv", "bcl_prices.csv")
ui <- shinyUI(fluidPage(
navbarPage("Analysis Application",
# First panel - upload data and give summary
tabPanel("Upload Data",
sidebarLayout(
sidebarPanel(
#Selector for file upload
fileInput('datafile', 'Choose data file',
accept='.csv', width='100%')
),
mainPanel(
verbatimTextOutput("desc"),
br(),
verbatimTextOutput("sum")
)
)
),
# Second panel - graph data
tabPanel("Plot Data",
sidebarLayout(
sidebarPanel(
uiOutput("graphtype"),
uiOutput("dependent"),
uiOutput("independent")
),
mainPanel(
plotOutput('plot')
)
)
)
)
))
server <- shinyServer(function(input, output) {
# First panel - load data and see summary
#This function is repsonsible for loading in the selected file
filedata <- reactive({
infile <- input$datafile
if (is.null(infile)) {
# User has not uploaded a file yet
return(NULL)
}
read.csv(infile$datapath, stringsAsFactors = T)
})
#This previews the CSV data file
output$desc <- renderPrint({
str(filedata())
})
output$sum <- renderPrint({
dat <- filedata()
summary(dat)
})
# Second panel - choose variables for plotting
# Choose graph type
output$graphtype <- renderUI({
grphtp <- c("Histogram", "Boxplot", "Bar chart", "Line chart", "Scatterplot")
selectInput("graphtype", "Graph Type", grphtp)
})
# Choose dependent variable, based on graph type
output$dependent <- renderUI({
if(is.null(input$graphtype) || is.na(input$graphtype)) {
return()
}
dat <- filedata()[,sapply(filedata(), is.numeric)]
colnames <- names(dat)
colnames
if(input$graphtype == "Histogram"){
selectInput("dependent", "Variable", colnames)
} else {
selectInput("dependent", "Dependent Variable", colnames)
}
})
# Choose independent variable, based on graph type
output$independent <- renderUI({
if(is.null(input$graphtype) || is.na(input$graphtype)) {
return()
}
if(input$graphtype == "Histogram"){
return(NULL)
} else if(input$graphtype == "Bar chart" | input$graphtype == "Box plot") {
dat2 <- filedata()[,sapply(filedata(), is.factor) | sapply(filedata(), is.character)]
colnames2 <- names(dat2)
colnames2
selectInput("independent", "Independent Variable", colnames2)
} else {
dat3 <- filedata()[,sapply(filedata(), is.numeric) | sapply(filedata(), is.integer)]
colnames3 <- names(dat3)
colnames3
selectInput("independent", "Independent Variable", colnames3)
}
})
# graph it!
output$plot <- renderPlot({
if (is.null(filedata())) {
# User has not uploaded a file yet
return(NULL)
}
if (is.null(input$dependent)) {
return(NULL)
}
if (is.null(input$independent)) {
return(NULL)
}
dat4 <- filedata()
if(is.null(input$graphtype) || is.na(input$graphtype)) {
return()
}
if(input$graphtype == "Histogram") {
# Histogram
h <- ggplot(dat4) +
geom_histogram(aes(input$dependent, ..density..)) +
geom_density(aes(input$dependent, ..density..)) +
geom_rug(aes(input$dependent))
print(h)
} else if(input$graphtype == "Box plot") {
#Boxplot
b <- ggplot(dat4,aes(factor(input$independent), input$dependent)) +
geom_point() + geom_boxplot()
print(b)
} else if(input$graphtype == "Bar chart") {
#Bar chart
bc <- ggplot(dat4, aes(factor(input$independent), input$dependent)) +
geom_bar(stat="identity") +
scale_fill_grey(start = 0, end = 1)
print(bc)
} else if(input$graphtype == "Line chart") {
#Line chart
lc <- ggplot(dat4, aes(input$independent, input$dependent)) +
geom_line()
print(lc)
} else {
#Scatterplot
sp <- ggplot(dat4, aes(input$independent, input$dependent),
size=2, position = position_jitter(x = 2,y = 2)) +
geom_point(color=alpha("black", 0.15))+
geom_smooth(method=lm)
print(sp)
}
})
})
shinyApp(ui = ui, server = server)
Этот код работает без ошибок, но я заговоры не делает (или не правильно). Я очень новичок в Shiny, поэтому я, вероятно, НЕ использую лучшие практики ... все еще изучая их.
Если бы кто-нибудь мог помочь мне заставить эти участки работать, я был бы благодарен!
Спасибо,
Джен
UPDATE:
ОК, так вот журнал трассировки.
SEND {"config":{"workerId":"","sessionId":"e4e72e6aa0974cbe9783d5d88293cca1"}}
RECV {"method":"init","data":{"datafile:shiny.file":null,".clientdata_output_desc_hidden":false,".clientdata_output_sum_hidden":false,".clientdata_output_graphtype_hidden":true,".clientdata_output_dependent_hidden":true,".clientdata_output_independent_hidden":true,".clientdata_output_plot_hidden":true,".clientdata_pixelratio":1,".clientdata_url_protocol":"http:",".clientdata_url_hostname":"127.0.0.1",".clientdata_url_port":"3655",".clientdata_url_pathname":"/",".clientdata_url_search":"",".clientdata_url_hash_initial":"",".clientdata_singletons":"",".clientdata_allowDataUriScheme":true}}
SEND {"busy":"busy"}
SEND {"recalculating":{"name":"desc","status":"recalculating"}}
SEND {"recalculating":{"name":"desc","status":"recalculated"}}
SEND {"recalculating":{"name":"sum","status":"recalculating"}}
SEND {"recalculating":{"name":"sum","status":"recalculated"}}
SEND {"busy":"idle"}
SEND {"errors":[],"values":{"sum":"Length Class Mode \n 0 NULL NULL ","desc":" NULL"},"inputMessages":[]}
RECV {"method":"uploadInit","args":[[{"name":"bcl_prices.csv","size":757242,"type":"application/vnd.ms-excel"}]],"tag":0}
SEND {"response":{"tag":0,"value":{"jobId":"91d0c607615b329d2179e868","uploadUrl":"session/e4e72e6aa0974cbe9783d5d88293cca1/upload/91d0c607615b329d2179e868?w="}}}
RECV {"method":"uploadEnd","args":["91d0c607615b329d2179e868","datafile"],"tag":1}
SEND {"progress":{"type":"binding","message":{"id":"desc"}}}
SEND {"busy":"busy"}
SEND {"progress":{"type":"binding","message":{"id":"sum"}}}
SEND {"response":{"tag":1,"value":null}}
SEND {"recalculating":{"name":"desc","status":"recalculating"}}
SEND {"recalculating":{"name":"desc","status":"recalculated"}}
SEND {"recalculating":{"name":"sum","status":"recalculating"}}
SEND {"recalculating":{"name":"sum","status":"recalculated"}}
SEND {"busy":"idle"}
SEND {"errors":[],"values":{"sum":" PRODUCT_TYPE_NAME PRODUCT_CLASS_NAME\n LIQUOR :6132 BEER : 683 \n NON LIQUOR: 12 CULINARY PRODUCTS : 1 \n DE-ALCOHOLIZED BEER : 3 \n DE-ALCOHOLIZED WINE : 8 \n REFRESHMENT BEVERAGE: 111 \n SPIRITS :1147 \n WINE :4191 \n PRODUCT_SUB_CLASS_NAME\n TABLE WINE :3775 \n BEER : 683 \n SCOTCH WHISKY : 258 \n SPARKLING WINE : 226 \n APERITIF DESSERT AND FORTIFIED WINE: 180 \n LIQUEURS : 169 \n (Other) : 853 \n PRODUCT_MINOR_CLASS_NAME PRODUCT_COUNTRY_ORIGIN_NAME\n TABLE WINE RED :2564 CANADA :1375 \n TABLE WINE WHITE :1119 FRANCE :1357 \n BEER : 689 UNITED STATES OF AMERICA: 707 \n SCOTCH - MALT : 208 ITALY : 570 \n SPARKLING WINE WHITE: 181 AUSTRALIA : 367 \n REGULAR VODKA : 141 UNITED KINGDOM : 345 \n (Other) :1242 (Other) :1423 \n PRODUCT_SKU_NO PRODUCT_LONG_NAME\n Min. : 18 COLUMBIA - KOKANEE CAN : 7 \n 1st Qu.:180584 BACARDI - SUPERIOR WHITE : 6 \n Median :390374 BAILEYS - ORIGINAL IRISH CREAM : 6 \n Mean :417884 CROWN ROYAL : 6 \n 3rd Qu.:637145 GREY GOOSE : 6 \n Max. :989319 JACK DANIEL'S - OLD #7 TENNESSEE SOUR MASH: 6 \n (Other) :6107 \n PRODUCT_BASE_UPC_NO PRODUCT_LITRES_PER_CONTAINER PRD_CONTAINER_PER_SELL_UNIT\n Min. :4.068e+07 Min. : 0.0300 Min. : 1.00 \n 1st Qu.:5.507e+11 1st Qu.: 0.7500 1st Qu.: 1.00 \n Median :8.088e+11 Median : 0.7500 Median : 1.00 \n Mean :2.782e+12 Mean : 0.8481 Mean : 1.63 \n 3rd Qu.:5.010e+12 3rd Qu.: 0.7500 3rd Qu.: 1.00 \n Max. :9.501e+12 Max. :18.0000 Max. :30.00 \n NA's :68 \n PRODUCT_ALCOHOL_PERCENT CURRENT_DISPLAY_PRICE SWEETNESS_CODE \n Min. : 0.01 Min. : 1.49 Min. : 0.0000 \n 1st Qu.:12.40 1st Qu.: 14.99 1st Qu.: 0.0000 \n Median :13.50 Median : 24.99 Median : 0.0000 \n Mean :17.14 Mean : 141.23 Mean : 0.6654 \n 3rd Qu.:14.50 3rd Qu.: 62.97 3rd Qu.: 0.0000 \n Max. :75.50 Max. :30250.00 Max. :10.0000 \n NA's :1 NA's :1813 ","desc":"'data.frame':\t6144 obs. of 13 variables:\n $ PRODUCT_TYPE_NAME : Factor w/ 2 levels \"LIQUOR\",\"NON LIQUOR\": 1 1 1 1 1 1 1 1 1 1 ...\n $ PRODUCT_CLASS_NAME : Factor w/ 7 levels \"BEER\",\"CULINARY PRODUCTS\",..: 7 7 7 7 7 7 7 7 7 6 ...\n $ PRODUCT_SUB_CLASS_NAME : Factor w/ 30 levels \"AMERICAN WHISKY\",..: 27 27 27 27 27 27 27 27 27 17 ...\n $ PRODUCT_MINOR_CLASS_NAME : Factor w/ 85 levels \"ALMOND\",\"AMBER\",..: 77 79 77 79 77 77 77 79 79 43 ...\n $ PRODUCT_COUNTRY_ORIGIN_NAME : Factor w/ 64 levels \"ANTIGUA AND BARBUDA\",..: 10 10 10 10 62 19 10 10 10 29 ...\n $ PRODUCT_SKU_NO : int 198267 305375 53017 215525 168971 234559 492314 587584 100925 10157 ...\n $ PRODUCT_LONG_NAME : Factor w/ 5575 levels \"1573 NATIONAL CELLAR - LUZHOU LAOJIAO CO.\",..: 1768 1993 4851 3265 5534 2897 4526 4847 2225 2682 ...\n $ PRODUCT_BASE_UPC_NO : num 4.82e+10 4.82e+10 5.90e+10 7.80e+11 8.13e+10 ...\n $ PRODUCT_LITRES_PER_CONTAINER: num 3 4 4 4 3 4 16 4 0.75 0.75 ...\n $ PRD_CONTAINER_PER_SELL_UNIT : int 1 1 1 1 1 1 1 1 1 1 ...\n $ PRODUCT_ALCOHOL_PERCENT : num 14 11.5 12 11 13.5 11 12.5 12 11.5 40 ...\n $ CURRENT_DISPLAY_PRICE : num 31 33 30 34 37 ...\n $ SWEETNESS_CODE : int 0 0 0 1 0 0 0 0 0 NA ..."},"inputMessages":[]}
RECV {"method":"update","data":{".clientdata_output_plot_width":989,".clientdata_output_plot_height":400,".clientdata_output_desc_hidden":true,".clientdata_output_sum_hidden":true,".clientdata_output_graphtype_hidden":false,".clientdata_output_dependent_hidden":false,".clientdata_output_independent_hidden":false,".clientdata_output_plot_hidden":false}}
SEND {"busy":"busy"}
SEND {"recalculating":{"name":"graphtype","status":"recalculating"}}
SEND {"recalculating":{"name":"graphtype","status":"recalculated"}}
SEND {"recalculating":{"name":"dependent","status":"recalculating"}}
SEND {"recalculating":{"name":"dependent","status":"recalculated"}}
SEND {"recalculating":{"name":"independent","status":"recalculating"}}
SEND {"recalculating":{"name":"independent","status":"recalculated"}}
SEND {"recalculating":{"name":"plot","status":"recalculating"}}
SEND {"recalculating":{"name":"plot","status":"recalculated"}}
SEND {"busy":"idle"}
SEND {"errors":[],"values":{"independent":null,"graphtype":{"html":"<div class=\"form-group shiny-input-container\">\n <label class=\"control-label\" for=\"graphtype\">Graph Type</label>\n <div>\n <select id=\"graphtype\"><option value=\"Histogram\" selected>Histogram</option>\n<option value=\"Boxplot\">Boxplot</option>\n<option value=\"Bar chart\">Bar chart</option>\n<option value=\"Line chart\">Line chart</option>\n<option value=\"Scatterplot\">Scatterplot</option></select>\n <script type=\"application/json\" data-for=\"graphtype\" data-nonempty=\"\">{}</script>\n </div>\n</div>","deps":[{"name":"selectize","version":"0.11.2","src":{"href":"shared/selectize"},"meta":null,"script":null,"stylesheet":"css/selectize.bootstrap3.css","head":"<!--[if lt IE 9]>\n<script src=\"shared/selectize/js/es5-shim.min.js\"></script>\n<![endif]-->\n<script src=\"shared/selectize/js/selectize.min.js\"></script>","attachment":null,"all_files":true}]},"plot":{"src":"data:image/png;[base64 data]","width":989,"height":400,"coordmap":[{"domain":{"left":-0.04,"right":1.04,"bottom":-0.04,"top":1.04},"range":{"left":0,"right":989,"bottom":399,"top":-1},"log":{"x":null,"y":null},"mapping":{}}]},"dependent":null},"inputMessages":[]}
RECV {"method":"update","data":{"graphtype":"Histogram"}}
SEND {"progress":{"type":"binding","message":{"id":"dependent"}}}
SEND {"busy":"busy"}
SEND {"progress":{"type":"binding","message":{"id":"independent"}}}
SEND {"recalculating":{"name":"dependent","status":"recalculating"}}
SEND {"recalculating":{"name":"dependent","status":"recalculated"}}
SEND {"recalculating":{"name":"independent","status":"recalculating"}}
SEND {"recalculating":{"name":"independent","status":"recalculated"}}
SEND {"busy":"idle"}
SEND {"errors":[],"values":{"independent":null,"dependent":{"html":"<div class=\"form-group shiny-input-container\">\n <label class=\"control-label\" for=\"dependent\">Variable</label>\n <div>\n <select id=\"dependent\"><option value=\"PRODUCT_SKU_NO\" selected>PRODUCT_SKU_NO</option>\n<option value=\"PRODUCT_BASE_UPC_NO\">PRODUCT_BASE_UPC_NO</option>\n<option value=\"PRODUCT_LITRES_PER_CONTAINER\">PRODUCT_LITRES_PER_CONTAINER</option>\n<option value=\"PRD_CONTAINER_PER_SELL_UNIT\">PRD_CONTAINER_PER_SELL_UNIT</option>\n<option value=\"PRODUCT_ALCOHOL_PERCENT\">PRODUCT_ALCOHOL_PERCENT</option>\n<option value=\"CURRENT_DISPLAY_PRICE\">CURRENT_DISPLAY_PRICE</option>\n<option value=\"SWEETNESS_CODE\">SWEETNESS_CODE</option></select>\n <script type=\"application/json\" data-for=\"dependent\" data-nonempty=\"\">{}</script>\n </div>\n</div>","deps":[{"name":"selectize","version":"0.11.2","src":{"href":"shared/selectize"},"meta":null,"script":null,"stylesheet":"css/selectize.bootstrap3.css","head":"<!--[if lt IE 9]>\n<script src=\"shared/selectize/js/es5-shim.min.js\"></script>\n<![endif]-->\n<script src=\"shared/selectize/js/selectize.min.js\"></script>","attachment":null,"all_files":true}]}},"inputMessages":[]}
RECV {"method":"update","data":{"dependent":"PRODUCT_SKU_NO"}}
SEND {"progress":{"type":"binding","message":{"id":"plot"}}}
SEND {"busy":"busy"}
SEND {"recalculating":{"name":"plot","status":"recalculating"}}
SEND {"recalculating":{"name":"plot","status":"recalculated"}}
SEND {"busy":"idle"}
SEND {"errors":[],"values":{"plot":{"src":"data:image/png;[base64 data]","width":989,"height":400,"coordmap":[{"domain":{"left":-0.04,"right":1.04,"bottom":-0.04,"top":1.04},"range":{"left":0,"right":989,"bottom":399,"top":-1},"log":{"x":null,"y":null},"mapping":{}}]}},"inputMessages":[]}
RECV {"method":"update","data":{"dependent":"CURRENT_DISPLAY_PRICE"}}
SEND {"progress":{"type":"binding","message":{"id":"plot"}}}
SEND {"busy":"busy"}
SEND {"recalculating":{"name":"plot","status":"recalculating"}}
SEND {"recalculating":{"name":"plot","status":"recalculated"}}
SEND {"busy":"idle"}
SEND {"errors":[],"values":{"plot":{"src":"data:image/png;[base64 data]","width":989,"height":400,"coordmap":[{"domain":{"left":-0.04,"right":1.04,"bottom":-0.04,"top":1.04},"range":{"left":0,"right":989,"bottom":399,"top":-1},"log":{"x":null,"y":null},"mapping":{}}]}},"inputMessages":[]}
RECV {"method":"update","data":{".clientdata_output_desc_hidden":false,".clientdata_output_sum_hidden":false,".clientdata_output_graphtype_hidden":true,".clientdata_output_dependent_hidden":true,".clientdata_output_independent_hidden":true,".clientdata_output_plot_hidden":true}}
RECV {"method":"update","data":{".clientdata_output_desc_hidden":true,".clientdata_output_sum_hidden":true,".clientdata_output_graphtype_hidden":false,".clientdata_output_dependent_hidden":false,".clientdata_output_independent_hidden":false,".clientdata_output_plot_hidden":false}}
RECV {"method":"update","data":{"graphtype":"Boxplot"}}
SEND {"progress":{"type":"binding","message":{"id":"dependent"}}}
SEND {"busy":"busy"}
SEND {"progress":{"type":"binding","message":{"id":"independent"}}}
SEND {"recalculating":{"name":"dependent","status":"recalculating"}}
SEND {"recalculating":{"name":"dependent","status":"recalculated"}}
SEND {"recalculating":{"name":"independent","status":"recalculating"}}
SEND {"recalculating":{"name":"independent","status":"recalculated"}}
SEND {"busy":"idle"}
SEND {"errors":[],"values":{"independent":{"html":"<div class=\"form-group shiny-input-container\">\n <label class=\"control-label\" for=\"independent\">Independent Variable</label>\n <div>\n <select id=\"independent\"><option value=\"PRODUCT_SKU_NO\" selected>PRODUCT_SKU_NO</option>\n<option value=\"PRODUCT_BASE_UPC_NO\">PRODUCT_BASE_UPC_NO</option>\n<option value=\"PRODUCT_LITRES_PER_CONTAINER\">PRODUCT_LITRES_PER_CONTAINER</option>\n<option value=\"PRD_CONTAINER_PER_SELL_UNIT\">PRD_CONTAINER_PER_SELL_UNIT</option>\n<option value=\"PRODUCT_ALCOHOL_PERCENT\">PRODUCT_ALCOHOL_PERCENT</option>\n<option value=\"CURRENT_DISPLAY_PRICE\">CURRENT_DISPLAY_PRICE</option>\n<option value=\"SWEETNESS_CODE\">SWEETNESS_CODE</option></select>\n <script type=\"application/json\" data-for=\"independent\" data-nonempty=\"\">{}</script>\n </div>\n</div>","deps":[{"name":"selectize","version":"0.11.2","src":{"href":"shared/selectize"},"meta":null,"script":null,"stylesheet":"css/selectize.bootstrap3.css","head":"<!--[if lt IE 9]>\n<script src=\"shared/selectize/js/es5-shim.min.js\"></script>\n<![endif]-->\n<script src=\"shared/selectize/js/selectize.min.js\"></script>","attachment":null,"all_files":true}]},"dependent":{"html":"<div class=\"form-group shiny-input-container\">\n <label class=\"control-label\" for=\"dependent\">Dependent Variable</label>\n <div>\n <select id=\"dependent\"><option value=\"PRODUCT_SKU_NO\" selected>PRODUCT_SKU_NO</option>\n<option value=\"PRODUCT_BASE_UPC_NO\">PRODUCT_BASE_UPC_NO</option>\n<option value=\"PRODUCT_LITRES_PER_CONTAINER\">PRODUCT_LITRES_PER_CONTAINER</option>\n<option value=\"PRD_CONTAINER_PER_SELL_UNIT\">PRD_CONTAINER_PER_SELL_UNIT</option>\n<option value=\"PRODUCT_ALCOHOL_PERCENT\">PRODUCT_ALCOHOL_PERCENT</option>\n<option value=\"CURRENT_DISPLAY_PRICE\">CURRENT_DISPLAY_PRICE</option>\n<option value=\"SWEETNESS_CODE\">SWEETNESS_CODE</option></select>\n <script type=\"application/json\" data-for=\"dependent\" data-nonempty=\"\">{}</script>\n </div>\n</div>","deps":[{"name":"selectize","version":"0.11.2","src":{"href":"shared/selectize"},"meta":null,"script":null,"stylesheet":"css/selectize.bootstrap3.css","head":"<!--[if lt IE 9]>\n<script src=\"shared/selectize/js/es5-shim.min.js\"></script>\n<![endif]-->\n<script src=\"shared/selectize/js/selectize.min.js\"></script>","attachment":null,"all_files":true}]}},"inputMessages":[]}
RECV {"method":"update","data":{"independent":"PRODUCT_SKU_NO","dependent":"PRODUCT_SKU_NO"}}
SEND {"progress":{"type":"binding","message":{"id":"plot"}}}
SEND {"busy":"busy"}
SEND {"recalculating":{"name":"plot","status":"recalculating"}}
SEND {"recalculating":{"name":"plot","status":"recalculated"}}
SEND {"busy":"idle"}
SEND {"errors":[],"values":{"plot":{"src":"data:image/png;[base64 data]","width":989,"height":400,"coordmap":[{"domain":{"left":-0.04,"right":1.04,"bottom":-0.04,"top":1.04},"range":{"left":0,"right":989,"bottom":399,"top":-1},"log":{"x":null,"y":null},"mapping":{}}]}},"inputMessages":[]}
RECV {"method":"update","data":{"dependent":"CURRENT_DISPLAY_PRICE"}}
SEND {"progress":{"type":"binding","message":{"id":"plot"}}}
SEND {"busy":"busy"}
SEND {"recalculating":{"name":"plot","status":"recalculating"}}
SEND {"recalculating":{"name":"plot","status":"recalculated"}}
SEND {"busy":"idle"}
SEND {"errors":[],"values":{"plot":{"src":"data:image/png;[base64 data]","width":989,"height":400,"coordmap":[{"domain":{"left":-0.04,"right":1.04,"bottom":-0.04,"top":1.04},"range":{"left":0,"right":989,"bottom":399,"top":-1},"log":{"x":null,"y":null},"mapping":{}}]}},"inputMessages":[]}
RECV {"method":"update","data":{"independent":"PRODUCT_LITRES_PER_CONTAINER"}}
SEND {"progress":{"type":"binding","message":{"id":"plot"}}}
SEND {"busy":"busy"}
SEND {"recalculating":{"name":"plot","status":"recalculating"}}
SEND {"recalculating":{"name":"plot","status":"recalculated"}}
SEND {"busy":"idle"}
SEND {"errors":[],"values":{"plot":{"src":"data:image/png;[base64 data]","width":989,"height":400,"coordmap":[{"domain":{"left":-0.04,"right":1.04,"bottom":-0.04,"top":1.04},"range":{"left":0,"right":989,"bottom":399,"top":-1},"log":{"x":null,"y":null},"mapping":{}}]}},"inputMessages":[]}
Любое из них имеет какой-либо смысл для кого-либо (очевидно, не для меня)?
ДРУГОЙ UPDATE:
Когда я извлекаю NULL возвращается я получаю эту ошибку:
Warning: Error in : Aesthetics must be either length 1 or the same as the data (6144): x, y
Stack trace (innermost first):
110: check_aesthetics
109: f
108: l$compute_aesthetics
107: f
106: by_layer
105: ggplot_build
104: print.ggplot
103: print
102: renderPlot [#124]
92: <reactive:plotObj>
81: plotObj
80: origRenderFunc
79: output$plot
4: <Anonymous>
3: do.call
2: print.shiny.appobj
1: <Promise>
Код для построения гистограммы было изменено немного к этому:
# Histogram
h <- ggplot(dat4, aes(input$dependent)) +
geom_histogram(aes(input$dependent), stat="count") +
geom_density(aes(input$dependent)) +
geom_rug(aes(input$dependent))
print(h)
ОБНОВЛЕНИЕ:
После большого количества Google, мой код сильно изменился t Я получаю ту же ошибку.
Вот новый код сервера:
options(shiny.browser=TRUE)
server <- shinyServer(function(input, output) {
# First panel - load data and see summary
#This function is repsonsible for loading in the selected file
filedata <- reactive({
infile <- input$datafile
if (is.null(infile)) {
# User has not uploaded a file yet
return(NULL)
}
read.csv(infile$datapath, stringsAsFactors = T)
})
#This previews the CSV data file
output$desc <- renderPrint({
str(filedata())
})
output$sum <- renderPrint({
dat <- filedata()
summary(dat)
})
# Second panel - choose variables for plotting
# Choose graph type
output$graphtype <- renderUI({
grphtp <- c("Histogram", "Boxplot", "Bar chart", "Line chart", "Scatterplot")
selectInput("graphtype", "Graph Type", grphtp)
})
# Choose dependent variable, based on graph type
output$dependent <- renderUI({
if(is.null(input$graphtype) || is.na(input$graphtype)) {
return()
}
dat <- filedata()[,sapply(filedata(), is.numeric)]
colnames <- names(dat)
colnames
if(input$graphtype == "Histogram"){
selectInput("dependent", "Variable", colnames)
} else {
selectInput("dependent", "Dependent Variable", colnames)
}
})
# Choose independent variable, based on graph type
output$independent <- renderUI({
if(is.null(input$graphtype) || is.na(input$graphtype)) {
return()
}
if(input$graphtype == "Histogram"){
return(NULL)
} else {
dat <- filedata()
colnames <- names(dat)
colnames
selectInput("independent", "Independent Variable", colnames)
}
})
# graph it!
output$plot <- renderPlot({
if (is.null(filedata())) {
# User has not uploaded a file yet
return(NULL)
}
#dat4 <- filedata()
if(is.null(input$graphtype) || is.na(input$graphtype)) {
return()
}
if(input$graphtype == "Histogram") {
dat <- filedata()[,sapply(filedata(), is.numeric)]
# Histogram
h <- ggplot(dat, aes(x=input$dependent)) +
geom_histogram(aes(input$dependent), stat="density") +
geom_density(aes(input$dependent, ..density..)) +
geom_rug(aes(input$dependent))
print(h)
} else if(input$graphtype == "Box plot") {
dat <- filedata()
#Boxplot
b <- ggplot(dat,aes(x=factor(input$independent), y=input$dependent)) +
geom_point() + geom_boxplot()
print(b)
} else if(input$graphtype == "Bar chart") {
dat <- filedata()
#Bar chart
bc <- ggplot(dat, aes(x=factor(input$independent), y=input$dependent)) +
geom_bar(stat="identity") +
scale_fill_grey(start = 0, end = 1)
print(bc)
} else if(input$graphtype == "Line chart") {
dat <- filedata()
#Line chart
lc <- ggplot(dat, aes(x=input$independent, y=input$dependent)) +
geom_line()
print(lc)
} else {
dat <- filedata()
#Scatterplot
sp <- ggplot(dat, aes(x=input$independent, y=input$dependent),
size=2, position = position_jitter(x = 2,y = 2)) +
geom_point(color=alpha("black", 0.15))+
geom_smooth(method=lm)
print(sp)
}
})
})
И новый след прилагается дает ту же ошибку, что и выше. Я вложил все это, но у меня закончилось свободное пространство. Если кто-то хочет его увидеть, я могу вставить его в качестве ответа ниже.
Все, кажется, вращается вокруг длины эстетики. Я думал, что это потому, что я подмножался в неправильном месте и вводил векторы в x и y. Я все еще должен это делать, но я не вижу, где.
Я замечаю, что у вас много прибыли (NULL) в вашем выводе $ plot. Я предполагаю, что по какой-то причине одна из них сработала, что приведет к тому, что график не будет отображаться без сообщения об ошибке. –
Лучший способ отладки блестящих приложений - использовать функцию browser(). Я предлагаю добавить браузер() в начале графика рендеринга. Затем запустите блестящее приложение из командной строки (shiny :: run(), я думаю). (Это связано с тем, что в новых версиях RStudio кнопка «Запустить» запускает секретный скрытый процесс R, чтобы сохранить вашу командную строку, поэтому браузер() не работает) –
Я не использую RStudio. Только родной R GUI. –