Closed spelapovrzenic closed 8 years ago
;)
Bom šel kar po točkah.
month.name
, mesec iz datuma pa v SQL dobiš z lastno funkcijo month
. Sicer pa bi morda to polje lahko izpustila, glede na to, da že imaš možnost izbire datuma.selectInput
(z malo začetnico). Poleg tega lahko namesto 1
in 0
raje uporabiš TRUE
in FALSE
, pa potem dodaš ustrezen filter, če je pogoj izpolnjen.if
stavku. Tabela, s katero štartaš, je join ustreznih tabel - izposodil sem si jo iz prve aplikacije.V pull requestu #9 so sedaj ti filtri narejeni. Trenutno se izpišejo vsi stolpci združene tabele - s pomočjo funkcije select
lahko potem izbereš želene stolpce, ki jih želiš prikazati. Izgleda mi, kot da se vsak napad v tej tabeli pojavi natanko enkrat (torej noben ni v več kot enem kraju oziroma kraju z več kot eno religijo). Če bi bilo potrebno kaj združevati, potem lahko z group_by
našteješ vse stolpce, ki so enolično določeni z attack_id
(vključno s tem - select
potem ni potreben), potem pa s summarise()
podaš še stolpce, ki se izračunajo za vsak napad (npr. seznam krajev, kjer se je zgodil napad).
Kot si ugotovila, funkcija filter
torej filtrira podatke glede na podan pogoj - v SQL torej ustreza pogojem pri WHERE
. Funkcija arrange
poskrbi za urejanje podatkov in torej ustreza ORDER BY
- podaš ji lahko seznam stolpcev, po katerih želiš urejati (če hočeš urejati padajoče, uporabiš desc(stolpec)
),
Hvala za vse prejšnje odgovore!
Imam pa še samo dve vprašanji ki se nanašata na server
v 6.Shiny
:
output$religionPlot1
še zdaj nisem točno pogruntala kako se najde manjkajoče religije (torej da so na x osi vedno zapisane vse, tudi če je kakšna vrednost 0). nap
je ok definiran edino naprej za mankajoče ni. Zapisala sem:vse <- tbl.religion %>% select(religion_id)
tiste<- nap %>% select(religion_id)
manjkajo <- which(! tiste %in% vse)
nap <- rbind(nap, data.frame(religija = manjkajo, stevilo = rep(0, length(manjkajo))))
samo nekaj malega mora biti narobe a ne najdem napake.
output$religionPlot2
rada bi da bo na x osi religije, na y število žrtev = max_deaths + injured .nap <- nap %>% group_by(religion_id, religija = name, max_deaths,injured) %>%
summarise() %>% group_by(religion_id, religija) %>%
summarise(stevilo = sum(max_deaths,injured)) %>% data.frame()
ta sum ne dela oziroma nekako drugače se mora uporabljati? torej kako se napiše da naj sešteje te dve vrednosti za posamezno religijo?
Hvala in lp :)
Glede na to, da so religije fiksne, bo najbolje, če kar takoj potegneš seznam (za ostalimi tabelami):
religije <- tbl.religion %>%
transmute(religion_id, religija = name, stevilo = 0) %>% data.frame()
transmute
deluje podobno kot select
, le da omogoča tudi izpeljavo novih podatkov iz obstoječih (select
tako ne bi omogočal, da podamo konstanten stolpec). Potem lahko izbrane vrstice te tabele dodamo k podatkom:
if (nrow(nap) > 0) {
manjkajo <- which(! religije$religion_id %in% nap$religion_id)
nap <- rbind(nap, religije[manjkajo,])
} else {
nap <- religije
}
Tukaj se ločita primera, ko imamo kakšne podatke in torej dodajamo neprazni razpredelnici, in primeru brez podatkov, ko enostavno povsod prikažemo ničle.
Funkcija sum
sprejema samo en argument. Če hočeš torej sešteti vrednosti dveh stolpcev, enostavno uporabi sum(max_deaths + injured)
.
Mimogrede, ne pozabi vključiti še knjižnice ggplot2 v server.R
. Da ti bodo vnosna polja pravilno delovala, morajo imeti različna imena - trenutno imaš dve polji z imenom kontinent
in dve polji z imenom mesec
.
Pozdravljeni! Hvala za prejšnje komentarje. Sedaj me pa še zanima pri aplikaciji 2 (v kometarju v ui i n serverju sva označili določeno aplikacijo da se ve katera je katera). Torej definirala sem vse inpute na tak način kakor ste rekli, pa me zanima če je ok če je kje kaka napaka (pri
meseci
inglmesto
nevem če je ok). Ter:ui
sem kar na roko napisala mesece, kako sedaj v outputu napišem da bi rada nevem če izberemo January, da ti vrže samo mesce, kjer jestart_date
2015-01-30 mesec 01, ter enako za vse druge mesece kako to naredim, kam točno napišem? Ter kako sploh izstart_date
"dobiti mesec".ui
sem tudi tukaj "na roko napisala". Sedaj pa me zanima kako v outputu povem da tam kjer je place=capital, da mi samo tiste gleda?to sem že dobila, ampak samo še nekako povezavo kako vključiv v
napadi1?
napadi1
, kako sedaj "kličem" vse te inpute? na tak način kakor sem sedaj verjetno ne? :) ter videla sem ukaz filter verjetno filtrira tabelo tako kot jo želiš? Kaj točno pa dela arrange?Že v naprej hvala za odgovore! Lp