Closed spelapovrzenic closed 8 years ago
Ter kako potem vidimo te aplikacije, namreč za ravno ta primer sem že naredila primer, a vedno ko želim pognati aplikacijo, potem mi javlja:
Warning in file(filename, "r", encoding = encoding) : cannot open file '4.Baza/auth.R': No such file or directory Warning: Error in file: cannot open the connection Stack trace (innermost first): 39: file 38: source 1: runApp Error in file(filename, "r", encoding = encoding) : cannot open the connection
Prva aplikcija nama "skoraj" dela, vendar nama se pokaže le ta slider in nič drugega.
Žal je tako, da RStudio pri poganjanju Shiny aplikacij ob kliku na Run App za delovni imenik vzame imenik, kjer se nahajata server.R
in ui.R
- to se ne sklada s tem, da je delovni imenik privzeto glavni imenik projekta. Najlažje bo, če pred klicanjem ukaza source
preverita, ali se v trenutnem imeniku najaha server.R
:
if ("server.R" %in% dir()) {
setwd("..")
}
Aha super, sedaj deluje! Najlepša hvala!
Sedaj me zanima, torej začela sem delati aplikacijo, ki bo vrnila tabelo z splošnimi lastnostmi napadov (da vrže podatke iz tabele attack)
vendar nekako bi vsaki državi ki je v tej tabeli dodelila še kontinent in religijo (to sva že dodali v bazi kot relacijo). In namen imam da bi v sliderPanelu (nekaj sem že notri napisala), da bi si najprej lahko izbral:
country
imamo tudi capital
in pogledali bi samo tiste, ki imajo v tabeli attack
pod place
torej tiste kjer je place
in capital
isti)ali sva si zastavili preveč? Drugače pa bi res prosila za pomoč, da bova potem tudi za naprej vedeli kako podobne stvari delati. Hvala že v naprej!
Plan izgleda v redu. Tabele povezujeta s funkcijami, kot so inner_join
, left_join
itd.
Še to bi opozoril: če hočeta imeti v vhodih podatke iz baze, potem bo treba te elemente ustvariti v server.R
in jih potem prikazati v ui.R
s funkcijo uiOutput
. Tako lahko v server.R
dasta npr.
output$kontinent <- renderUI({
celine <- data.frame(tbl.continent)
selectInput("kontinent", "Izberi celino:",
choices = c("All" = 0, setNames(celine$continent_id,
celine$name)))
})
Potem namesto selectInput
v ui.R
postavita ustrezni element:
uiOutput("kontinent")
Tako bo v server.R
spremenljivka input$kontinent
vsebovala 0
ob izbiri All, oziroma ustrezni ID ob izbiri kontinenta.
Pri takih dinamičnih elementih je problem le ta, da se naložijo kasneje, zato input$kontinent
na začetku ne bo definiran, kar lahko privede do napake ob nalaganju (kasneje navadno te napake izginejo). Teh napak se lahko znebita tako, da z npr. is.null
preverite, ali je spremenljivka definirana, in naredita ustrezno stvar, če ni (npr. postavita privzeto vrednost - pazita na to, da so komponente objekta input
samo za branje, tako da bo treba uvesti novo spremenljivko).
hvala. Ta issue bova zaprli in odprli sva dva nova za aplikacije, da bo bolj pregledno kaj sprašujeva. lp
Se oproščam za neodzivnost.
Bom kar tukaj dal en splošen komentar. Če želita imeti več Shiny aplikacij, vsako postavite v svojo mapo s svojima datotekama server.R
in ui.R
. Seveda pa imata lahko tudi eno samo aplikacijo z več ločenimi zavihki.
Bom posebej odgovoril še na #7 in #8.
Živjo! Evo sedaj se bova lotili shinyja, pa imava par vprašanj kako sploh začeti. V dokumentu server in ui sva že "skopirali" idejo prve aplikacije. Sedaj pa naju zanima kako točno to delaš, kaj točno notri vpisuješ . Naprimer za prvo sva si izbrale število mrtvih in bi iz tabele
attack
pogledali napade, in potem bi imeli na npr levi strani tak "slider", kjer bi naprimer označili npr pokaži napade kjer je bilo več kot 10 mrtvih, potem napade več kot 20, 100 mrtvih, itd .... izpisovalo pa bi potem podatke o napadih Bi bile hvaležne če bi nama nekako razložili te inpute in outpute torej kaj točno moramo notri gledati. Če preveč sprašujeva, če imate čas jutri, se lahko oglasim pri vas pa mi poveste v živo, tudi ni problema.Hvala in lp