Diskuze: Programovací jazyk R a framework Shiny

Koš Programovací jazyk R a framework Shiny

Aktivity (1)
Avatar
Adam Matis
Člen
Avatar
Adam Matis:13.9.2017 20:32

Ahoj je tu někdo, kdo už pracoval popřípadě pracuje v jazyce R a frameworku Shiny ? Měl bych pár dotazu.Díky.

 
Odpovědět 13.9.2017 20:32
Avatar
Odpovídá na Adam Matis
Michal Žůrek - misaz:13.9.2017 22:11

zde se nehledají lidi, ale píší dotazy. napiš tedy otázky, na které se chceš zeptat a pokud tu někdo schopný odpovědět je, tak odpoví.

Nahoru Odpovědět  +1 13.9.2017 22:11
Nesnáším {}, proto se jim vyhýbám.
Avatar
Adam Matis
Člen
Avatar
Adam Matis:14.9.2017 0:07

Dobrá. Řeším současně problém s databází připojuji se k mysql pomocí package pool ale nenašel jsem žadné korektní řešení, jak spojení ukončit. Připojení vypada nějak takto:

library(DBI)
library(pool)

pool <- dbPool(
  drv = RMySQL::MySQL(),
  dbname = "my_db",
  host = "127.0.0.1",
  username = "root"
)

sql<-"SELECT  * FROM koupil;"
query<-sqlInterpolate(pool,sql)
koupil<-dbGetQuery(pool,query)
 
Nahoru Odpovědět 14.9.2017 0:07
Avatar
Neaktivní uživatel:28. března 12:30

p

Editováno 28. března 12:32
Nahoru Odpovědět 28. března 12:30
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:28. března 20:09

##1. uloha

funkcia = function(c,d,n){
vektor = c(1:n)
delitelneC = c()
pocet = 0
j = 1
for(i in 1:length(vektor)){
if(vektor[i]%%d == 0 & vektor[i]%%d ==0){
pocet = pocet + 1
}
if(vektor[i]%%c == 0){
delitelneC[j] = vektor[i]
j = j + 1
}
}
print("vypis vektora:")
for(i in 1:length(deli­telneC)){
print(delitel­neC[i])
}
print("pocet:")
print(pocet)
}

funkcia(3,5,10)

##2.uloha

getwd()
dir.create("Za­pocetSk")
fileURL = "http://slovak­khl.sk/index.php?pa­ge=kanadske-bodovanie"
library(XML)
temp = htmlParse(fileURL)
tabs = readHTMLTable(tem­p,stringAsFac­tor = TRUE, header = TRUE)
tabs
hraci = tabs[[1]][c(2:10),]
hraci
names(hraci)[4] = c("ttttm")
hraci
as.numeric(hraci$G) ## netusim vobec ci sa to zmenilo
hraci[order(hra­ci$G, decreasing = TRUE),]

##3.uloha

set.seed(10)
library(data.table)
tabulka = data.table(
A = rnorm(10),
B = c(1:10),
C = c(10:1),
D = rep(c("a","b"),each = 5)
)
tabulka

tabulka[c(2,4), 1] = NA
mean(tabulka[c(1,3,5,6­,7,8,9,10),A])
tabulka[,E:=B2]
tabulka[,F:=sum(B­),by = D]
tabulka[which(ta­bulka$A == is.na(A)) & sum(A), summary(tabulka)]
tabulka[order(ta­bulka$C, decreasing = TRUE)]

##4.uloha##########­####################
library(base)
infert = infert
infert
boxplot(pooled­.stratum~pari­ty,infert,col="o­range",main="IN­FERT",xlab="pa­rity",ylab="po­oled.stratum")
abline(h = mean(infert$po­oled.stratum), lwd = 4, lty = 3, col = "blue")

library(lattice)
pdf(file = "myplot.pdf")
xyplot(infert$ca­se~infert$age | infert$induced, layout= c(1,3))
dev.off()

Nahoru Odpovědět 28. března 20:09
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:29. března 8:57

1. Vytvorte funkciu s názvom funkcia, ktorá bude obsahovať premenné c d, n. Vytvorte vektor f, ktorý bude nadobúdať hodnoty od 1 po n. Použitím cyklu prejdite všetky čísla vektora f a pomocou vetvenia urobte nasledovné operácie:
a. Číslo vstupnej premennej c nahraďte na výstupe znakom „A“
b. Číslo vstupnej premennej d nahraďte na výstupe znakom „B“
c. Inak vypíšte normálnu hodnotu čísla z vektora f
Na záver spustite Vami vytvorenú funkciu s potrebnými vstupnými premennými.

1. ULOHA

funkcia = function(c,d,n){
f=seq(1,n, 1)
for(i in 1:length(f)){
if(f[i]==c){
f[i]='A'
}

else if(f[i]==d){
f[i]='B'
}

}
print(f)
}

funkcia(3,7,15)

2. Urobte nasledujúce úlohy:
a. Vypíšte aktuálnu cestu pracovného adresára
b. Vytvorte priečinom s názvom Zapocet1
c. Nastavte priečinok Zapocet1 ako aktuálny pracovný adresár
d. Do premennej fileURL zadajte adresu pre stiahnutie súboru http://www.w3schools.com/xsl/books.xml
e. Stiahnite súbor books.xml do pracovného adresára
f. Načítajte do premennej root telo XML súboru bez hlavičky (popis XML v erzzie a kódovania)
g. Vypíšte hlavný tax XML súboru a informáciu o roku vydania štvrtej knihy
h. Pomocou Xpath vypíšte všetky ceny kníh a všetky informácie o knihách, ktoré sú z kategórie web.

getwd()
dir.create("Za­pocet1")
setwd("C:/User­s/Martina/Des­ktop/Zapocet1")
fileUrl<- "http://www.w3scho­ols.com/xsl/bo­oks.xml"
library(XML)
doc<- xmlTreeParse(fi­leUrl, useInternalNodes =TRUE)
root<- xmlRoot(doc)

3. Na začiatku nastavte hodnotu seed na 9 pomocou príkazu set.seed(9). Vytvorte tabuľku s názvom tabulka pomocou príkazu data.table tak, že stĺpec A bude obsahovať hodnoty od 9 po 1, stĺpec B bude mať na prvých 3 riadkoch hodnotu c, ďalšie 3 riadky hodnotu d a zvyšné 3 riadky hodnotu e. Ďalej vytvorte stĺpec C s 9 hodnotami normálového rozdelenia a stĺpec D s hodnotami od 1 po 9. Následne vykonajte tieto kroky.
a. Pridajte do stlpcca D prázdnu hodnotu (NA) na 3 a 5 miesto
b. Usporiadajte celú tabuľku podľa stĺpca A
c. Vyberte len tie riadky, ktoré majú v stĺpci D hodnoty väčšie ako 4
d. Vypočítajte priemer stĺpca C
e. Pridajte do tabuľky stĺpec E, ktorý bude obsahovať sumu stĺpca A podľa faktoru B
f. Vrátťe hodnotu T alebo F podľa toho, či sú v stĺpci C všetky hodnotu väčšie ako 0
g. Vypíšte počet jednotlivých kategórii (faktorov) stĺpca B
h. Usporiadajte iba stĺpce C

set.seed(9)
tabulka = data.table(A=9:1, B=rep(c("c", "d", "e"), each=3), C=rnorm(9), D=1:9)
tabulka
tabulka$D[c(3,5)]­=NA
tabulka[tabulka$A]
tabulka[D>4]
mean(tabulka$C)
tabulka[,E:=sum(A), by=B]
all(tabulka$C>0)
tabulka[,.N, by=B]
sort(tabulka$C)

set.seed(9)
tabulka = data.table(A=9:1, B=rep(c("c", "d", "e"), each=3), C=rnorm(9), D=1:9)
tabulka$D[c(3,5)]­=NA
tabulka[tabulka$A]
tabulka[D>4]
mean(tabulka$C)
all(tabulka$C>0)
tabulka[,.N, by=B]

4. Vytvorte histogram pomocou systému vykresľovania Base. Použite dáta z datasetu s názvom quakes. Uložte dáta quakes do premennej s názvom quakes. Na začiatku zadajte to, že vykreslíme 2 grafy pod seba. Prvý (vrchný) histogram bude znázorňovať hodnoty premnnej long, farbu nastavte na červenú, pridajte nadpis a rozdelenie histogramu na 15 častí. Druhý (dolný) histogram bude znázorňovať hodnoty premennej mag, farbu nastavte na sivú, pridajte popis a rozdeľte histogram na 25 častí.
Vytvorte spojitú verziu grafu pomocou systému vykresľovania ggplot2, ktorý bude znázorňovať premennú stations (nastavte vhodný geam. Prvok)

library(base)
quakes=quakes
quakes
par(mfrow=c(2,1))
hist(quakes$long, col = "red", main = "udaje long", xlab= "os x", ylab="os y", breaks = 15)
hist(quakes$mag, col= "grey", main = "udaje mag", xlab= "os x", ylab="os y", breaks = 25 )

library(ggplot2)
qplot(stations, data=quakes, geom = "density")

Nahoru Odpovědět 29. března 8:57
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:29. března 8:58

1. Vytvorte funkciu, ktorá ude osahovať vstupné premenné a, b, n. Použitím cyklu prejdite všetkými číslami od 1 po n, pomocou vetvenia urobte nasledovné operácie a hodnoty vypíšte:
a. Čísla delitešné a podeľte týmto číslom a
b. Čísla deliteľné b nahraďte písmenom „B“
c. Inak vypíšte normálnu hodnotu čísla
Na záver spusite Vami vytvorenú funkciu so vstupnými premennými a, b, n. Pomôcka: číslo je deliteľné napr. 3 ak číslo%%3 == 0.

funkcia = function(a, b, n){
for(i in 1:n){
if(i %%a == 0){
vysledok=i/a
print(vysledok)
}
else if(i %%b == 0){
print("B")
}
else{
print(i)
}
}

}
funkcia(4, 7, 13)

2. Urobte nasledujúce úlohy:
a. Vypíšte aktuálnu cestu pracovného adresára
b. Vytvorte priečinom s názvom Zapocet1
c. Nastavte priečinok Zapocet1 ako aktuálny pracovný adresár
d. Načítajte HTML kód zo stránky http://sport.aktuality.sk/…iga/tabulka/ a všetky jej tabuľky do premennej tabulky
e. Vytvorte tabuľku s názvom hokej, ktorá bude obsahovať tabuľku všetkých tímov a stĺpce v poradí: poradie, meno tímu, počet zápasov, skóre, body.
f. Premenujte načítané stĺpce na názvy Poradie, Tím, Zápasy, Skóre, Body.

getwd()
dir.create("Za­pocet1")
setwd("C:/User­s/Martina/Des­ktop/Zapocet1")
library(XML)
t=htmlParse("http://s­port.aktuality­.sk/vysledky/fut­bal/slovensko-fortuna-liga/tabulka/")
tabulky= readHTMLTable(t, stringAsFactor=FAL­SE)
hokej = tabulky [[1]][, c(1, 2, 3, 8, 4)]
names(hokej) = c("Poradie", "Tim", "Zapasy", "Skore", "Body")
hokej

3. Na začiatku nastavte hodnotu seed na 12 pomocou príkazu set.seed(12). Vytvorte tabulku s nazvom tabulka pomocou príkazu data.frame tak, že prvých 6 riadkov stlpca A bude mat hodnotu c a zvyšných 6 bude obsahovať hodnotu d, ďalej stĺpec B s hodnotami od 10 po 43 s krokom 3, stĺpec C s 12 hodnotami normálového rozdelenia a stĺpec D bude mať hodnoty od 5 po 16. Následne vykonajte tieto kroky:
a. Pridajte do stĺpca B prázdnu hodnotu (NA) na 2,5 a 11. Miesto
b. Usporiadajte iba stĺpec C od najväčšej po najmenšiu hodnotu
c. Vypočítajte kvantily pre st´pec D s hodnotami 0%, 15% a 56%
d. Spočítajte počet prázdnych hodnôt v každom stĺpco
e. Vypočítajte priemer stĺpca B bez prázdnych hodnôt
f. Vráťte hodnotu T alebo F podľa toho či sa v stĺpci C nachádzajú nejaké prázdne hodnoty.
g. Vypíšte početnosť rôznych hodnôt pre stĺpec A
h. Pridajte nový stĺpec E, ktorý bude mať hodnoty stĺpca D umocnené na druhú

set.seed(12)
tabulka = data.frame(A=rep(c("­c", "d"), each=6), B=seq(10, 43, by=3), C=rnorm(12), D=5:16)
tabulka
tabulka$B[c(2, 5, 11)]=NA
sort(tabulka$C, decreasing = TRUE)
quantile(tabulka$D, c(0, 0.15, 0.56))
tabulka[(which(ta­bulka$B != is.na(B))),mean(B)]
all(tabulka$C=NA)
tabulka[,.N, by=A]
sum(is.na(tabulka))
sort(tabulk$C, decreasing = TRUE)
tabulka[(which(ta­bulka$D) == is.na(D))]
colSums(is.na(ta­bulka))

4. Vytvorte boxplot pomocou systému vykresľovania Base. Použite dáta z datasetu s názvom CO2. Uložte CO2 do premennej s názvom CO2. Boxplot bude znázorňovať závislosť premennej utpake ku premennej Treatment Nastavte farbu boxplotu na modrú a pridajte taktiež nadpis grafu a popis osí x a y. Na záver pridajte do grafu horizontálnu hrubú čiaru s veľkosťou 5 na hodnote 28, ktorá bude prerušovaná a červená.
Vytvorte graf pomocou systému vykresľovania lattice, ktorý bude znázorňovať premennú uptake v závislosti conc. Grafy rozdeľte podľa premennej Type.

library(base)
CO2=CO2
CO2
par(mfrow = c(1,1))
boxplot(uptake~Tre­atment, CO2, col = "blue", xlab="Treatment", ylab="uptake", main = "zavislost treatment od uptake")
abline(h = 28, lwd = 5, lty = 2, col = "red")
library(lattice)
xyplot(uptake~con­c|Type, data = CO2)

Nahoru Odpovědět 29. března 8:58
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:29. března 8:58

1. Vytvorte funkciu s názvom funkcia, ktorá bude obsahovať premenné a, b n. Použitím cyklu prejdite všetky čísla od 1 po n. Pomocou vetvenia vykonajte nasledovne operácie a hodnoty vypíšte:
a. Číslo menšie ako a vydeľte hodnotou 4
b. Číslo v rozsahu <a, b) vydeľte hodnotou 3
c. Číslo v rozsahu <b, n) vydeľte hodnotou 2
Na záver spustite Vami vytvorenú funkciu s potrebnými vstupnými premennými.

funkcia = function(a, b, n){
for(i in 1:n){
if(i<a){
print(i/4)
}

else if){
print(i/3)
}

else if){
print(i/2)
}
}
}
funkcia(5, 8, 16)

2. Urobte nasledujúce úlohy:
a. Vypíšte aktuálnu cestu pracovného adresára
b. Vytvorte priečinom s názvom Zapocet1
c. Nastavte priečinok Zapocet1 ako aktuálny pracovný adresár
d. Načítajte data vo formáte JSON z linku http://web.tuke.sk/…st/data.JSON
e. Vypíšte mená stĺpcov z týchto dát a všetky hodnoty atribútu name z dát JSON
f. Prefomátujte data attenu a uložte do premennej attenu_json
g. Uložte preformátované data attenu_json do súboru s názvom attenu_JSON

getwd()
dir.create("Za­pocet1")
setwd(„svoja cesta k suboru k zapocet 1")
Library(“jsonlite”)
json_lfile<- http://web.tuke.sk/…st/data.JSON"
Install.packa­ges(‘curl’)
fromJSON(json_file)
tables(json_file)

3. Na začiatku nastavte hodnotu seed na 18 pomocou príkazu set.seed(18). Vytvorte tabuľku s názvom tabulka pomocou príkazu data.table tak, že stĺpec A bude obsahovať hodnoty od 15 po 1, stĺpec B bude factor, kde prvých 5 riadkov bude obsahovať hodnotu b, Ďalších 5 riadkov hodnotu a a zvyšných 5 riadkov hodnotu c. Ďalej vytvorte stĺpec D s hodnotami od 15 po 1 a stĺpec C s 15 hodnotami normálového. Následne vykonajte tieto kroky.
a. Pridajte do stlpcca c prázdnu hodnotu (NA) na 7 a 8 miesto
b. Vypíšte sumár celej tabuľky a počet prázdnych hodnôt stĺpca C
c. Zistite, či sú všetky hodnoty v stĺpci D väčšia ako 0
d. Vypočítajte priemer stĺpca D
e. Usporiadajte iba stĺpec C
f. Pridajte do tabuľky stĺpec E, ktorý bude obsahovať sumu stĺpca D podľa faktoru B
g. Vytvorte v tabuľke nový stĺpec s názvom F? Ktorý bude mať hodnoty stĺpca A umocnené na tretiu.

set.seed(18)
tabulka = data.table(A=15:1, B=rep(c("b", "a", "c"), each=5), C=rnorm(15), D=15:1)
tabulka
tabulka$C[c(7, 8)]=NA
tabulka
all(tabulka$D>0)
mean(tabulka$D)
sort(tabulka$C)
tabulka[,E:= sum(D), by=B]
tabulka[,F:= A3]

4. Vytvorte scatterplot pomocou systému vykresľovania Base. Použite dáta z dataseru s názvom quakes. Uložte dáta quakes do premnnej s názvom quakes. Na začiatku zadajte to, že vykreslíme 2 grafy vedľa seba. Prvý (vľavo) graf bude znázorňovať hodnoty premenných long a depth, farbu nastavte na zelenú a pridajte nadpis. Druhý (vpravo) graf bude znázorňovať hodnoty premnných lat a depth, farbu nastavte na modrú a taktiež pridajte nadpis.

Vytvorte graf pomocou systému vykresľovania ggplot2, korý bude znázorňovať premenné lat a stations. Farbu v grafe rozdeľte podľa premennej mag.

Library(base)
quakes=quakes
par(mfrow=c(1,2), mar = c(5, 4, 2, 1))
with(quakes, plot(long, depth, col = "green", main="nadpis vlavo"))
with(quakes, plot(lat, depth, col = "blue", main = "nadpis vpravo"))
library(ggplot2)
qplot(lat, stations, data = quakes, col=mag)

Nahoru Odpovědět 29. března 8:58
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:25. dubna 22:25

#############­###############SKU­PINA A#############
######### ULOHA 1


title: "Skupina A"
author: "Tomáš"
date: "22 apríla 2017"
output: html_document


#Štruktúra systému R
R systém je rozdelený do dvoch konceptuálnych častí.

<!-- nemam ten zoznam -->


##Relevantné simulačné nástroje
Názov | Výhody | Nevýhody | Open-source
------|--------|----------|------------
R |Podpora knižníc|Nároč­nejší|Áno
Matlab|Podpora matíc|Podpora štat. metód|Nie

###Dáta mtcars
Dáta mtcars obsahujú tieto názvy stĺpcov

`{r, echo=TRUE}
tab=mtcars
print(colnames(tab))

`

<!--Neviem dat dokopy histogramy-->
`{r pressure, echo=FALSE}
hist(tab$hp, col="blue", main="Nadpis grafu", xlab="hp")
hist(tab$wt, col="blue", main="Nadpis grafu", xlab ="wt")

`
#############­####ULOHA 2 UI
#
# This is the user-interface definition of a Shiny web application. You can
# run the application by clicking 'Run App' above.
#
# Find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com/
#

library(shiny)

# Define UI for application that draws a histogram
shinyUI(fluidPage(

# Názov aplikácie
titlePanel("Dáta o mestách"),

## toto tu nema byt ale ked dam prec je chyba
# Sidebar with a slider input for number of bins

# Pridany selectInput podla nazvov stlpcov tabulky state.x77
flowLayout(

selectInput("se­lectID","Vyber­te atribút",choices =colnames(sta­te.x77)),
radioButtons("ra­dioID","Vyber­te farbu grafu",choices = c("blue", "red")),
numericInput("nu­mericID1","Za­dajte rozdelenie v histograme", value=12, min=2, max=20),
numericInput("nu­mericID2","Po­cet riadkov tabulky", value=12, min=1, max=50)
),

# Show a plot of the generated distribution
mainPanel(
plotOutput("dis­tPlot")
# treba vystup pre tabulku

)

))
#############­#############U­LOHA 2 SERVER
#
# This is the server logic of a Shiny web application. You can run the
# application by clicking 'Run App' above.
#
# Find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com/
#

library(shiny)

# Define server logic required to draw a histogram
shinyServer(fun­ction(input, output) {

output$distPlot <- renderPlot({

# generate bins based on input$bins from ui.R
x <- state.x77[,in­put$selectID]
bins <- seq(min(x), max(x), length.out = input$numericID1 + 1)

# draw the histogram with the specified number of bins
hist(x, breaks=bins, col = input$radioID, border = 'white')

})

#treba implementovat ...b

})
#############­#######ULohA 3
f=function(x){
5*sin(x)-exp(x)
}

curve(5*sin(x),-5,5)
curve(exp(x),ad­d=TRUE, col="blue")

# vsetky sa nedaju najst.........

uniroot(f, lower=-4, upper=-2, tol=1e-4)
uniroot(f, lower=0, upper=1, tol=1e-4)
uniroot(f, lower=1, upper=2, tol=1e-4) # najvyssi koren

#############­#############SKU­PINA B
##############ULOHA 2 UI
#
# This is the user-interface definition of a Shiny web application. You can
# run the application by clicking 'Run App' above.
#
# Find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com/
#

library(shiny)

# Define UI for application that draws a histogram
shinyUI(fluidPage(

# Application title
titlePanel("Old Faithful Geyser Data"),

flowLayout(
selectInput("se­lectID","Vyber­te atribút",choi­ces=c(colnames(a­irquality))),
radioButtons("ra­dioID","Vyber­te farbu grafu", choices=c("gre­en","yellow")),
numericInput("nu­mericID","Počet riadkov tabuľky",value=3, min=1, max=100, step=5),
textInput("tex­tID","Zadajte nadpis grafu", value ="Nadpis")
),

# Sidebar with a slider input for number of bins
# pri mazani vygenerovaneho vymaz aj jednu zatvorku od dola

# Show a plot of the generated distribution
mainPanel(
plotOutput("dis­tPlot")
)
)
)
##############ULOHA 2 SERVER
#
# This is the server logic of a Shiny web application. You can run the
# application by clicking 'Run App' above.
#
# Find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com/
#

library(shiny)

# Define server logic required to draw a histogram
shinyServer(fun­ction(input, output) {

output$distPlot <- renderPlot({

# generate bins based on input$bins from ui.R
x <- airquality[,in­put$selectID]
# ZAKOMENTOVAT !!!! bins <- seq(min(x), max(x), length.out = input$bins + 1)

# draw the histogram with the specified number of bins
boxplot(x~air­quality$Month, col = input$radioID, border = 'white', main=input$textID)

})

})
#############­##########ULO­hA 3
predaj=c(9,5,18­,14,10,12,7,11,5,16,14,1­1)
cena=c(18,24,9­,15,17,16,20,15,22,14,15­,19)

tabulka=data.fra­me(predaj,cena)
ciara=lm(predaj~ce­na,data=tabul­ka)
plot(tabulka)
abline(ciara)

#############­#######SKUPINA C
#############­######ULOHA 1


title: "Skupina C"
author: "Tomáš"
date: "24 apríla 2017"
output: html_document


## Štruktúra systému R
R systém je rozdelný do dvoch konceptuálnych častí.

1. R "base" systém

  • CRAN(priestor pre zdielanie balíkov)

2. Všetko ostatné

### Kvadratická rovnica
Diskriminant vypočítame podľa vzorca $D=b2{2}+4ac$

##Dáta a graf
Počet stĺpcov a riadkov dát airquality

`{r eval=FALSE }
nrow(airquality)
ncol(airquality)
`
`{r echo=FALSE }
boxplot(airqu­ality$Ozone~a­irquality$Mon­th, col="blue", xlab="xova os", ylab="ylonova os", main="GRAF")
`
##########ULOHA 2 UI
#
# This is the user-interface definition of a Shiny web application. You can
# run the application by clicking 'Run App' above.
#
# Find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com/
#

library(shiny)

# Define UI for application that draws a histogram
shinyUI(fluidPage(

# Application title
titlePanel("Dáta Quakes"),

flowLayout(
selectInput("se­lectID1","Vyber­te atribút č.1",choices=col­names(quakes)),
selectInput("se­lectID2","Vyber­te atribút č.2", choices=colna­mes(quakes)),
radioButtons("ra­dioID","Vyber­te farbu grafu",choices=c("gre­en","yellow","blac­k")),
numericInput("nu­mericID","Zadaj­te hrúbku bodov:",value=1, min=1, max=3)
),

# Show a plot of the generated distribution
mainPanel(
textOutput("tex­tik"),
plotOutput("dis­tPlot"),
tableOutput("ta­blee")
)
)
)

##############ULOHA 2 SERVER
#
# This is the server logic of a Shiny web application. You can run the
# application by clicking 'Run App' above.
#
# Find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com/
#

library(shiny)

# Define server logic required to draw a histogram
shinyServer(fun­ction(input, output) {

output$textik <- renderText({
vypis=c("Vybrali ste si", input$radioID, "farbu a na porovnanie ste zadali atribúty ", input$selectID1, input$selectID2)
print(vypis)
})

output$distPlot <- renderPlot({

# generate bins based on input$bins from ui.R
# neviem ako zobrazit zaroven aj iny stlpec od selectID2
x <- quakes[, input$selectID1]
#bins <- seq(min(x), max(x), length.out = input$bins + 1)

# draw the histogram with the specified number of bins
hist(x, col =input$radioID, border = 'white', lwd=input$nume­ricID)

})

})

Nahoru Odpovědět 25. dubna 22:25
Neaktivní uživatelský účet
Avatar
Lasvit
Člen
Avatar
Odpovídá na Neaktivní uživatel
Lasvit:25. dubna 23:48

Zkus využít konečně "Vložit zdrojový kod" nebo < code>< /code> nechtělo by se mi být tím člověkem, co se v tom chce hrabat.

Editováno 25. dubna 23:49
 
Nahoru Odpovědět 25. dubna 23:48
Avatar
Neaktivní uživatel:1. května 20:42


`{r, echo=TRUE}
rnorm(10,mean = 5,sd=2)
`

`{r, echo=TRUE}
runif(10, min=2, max=20)
`

`{r, echo=TRUE}
dunif(9, min=2, max=20)
`

`{r, echo=TRUE}
rbinom(14,10,0.6)
`

`{r, echo=TRUE}
dbinom(7,10,0­.6,log=TRUE)
`

`{r, echo=TRUE}
dnorm(7,mean = 5,sd=2,log=FALSE)
`

##Dáta state.x77

Zobrazanie histogramu pre atribút Income z dát state.x77

`{r, echo=FALSE}

hist(state.x77[,"In­come"],bins=10,col = "green", main = "graf",xlab = "os x",ylab = "os y")

`

`{r, echo=TRUE}

plot(mtcars$hp~mtcar­s$wt, col = "red" )
`

##Data quakes

`{r, echo=TRUE}

plot(quakes$dep­th~quakes$lat, col = "yellow" )
`
#############­########################­########################­###
shinyServer(fun­ction(input, output, session){
observeEvent(in­put$do, {
session$sendCus­tomMessage(ty­pe = 'testmessage',
message = 'Thank you for clicking')

output$textik <- renderText({
vypis=c("Zobrazili ste tabuĺku s 5 riadkami pre atribut Ozone ste nastavili farbu green")
print(vypis)

})

output$tablee <- renderTable({
airquality=c(in­put$NumID)
print(airquality)

})

output$distPlot <- renderPlot({

# generate bins based on input$bins from ui.R
x <- airquality[,in­put$SelID]
# bins <- seq(min(x), max(x), length.out = input$bins +1)

# draw the histogram with the specified number of bins
boxplot(x~air­quality$Month, col = input$RadioID, border = 'white',main=in­put$TextID)

})

})
})
#############­########################­###########
#############­############

install.packa­ges("lpSolve")
library(lpSolve)
assign.costs = matrix (c(5,12,9,8,7­,8,10,13,13,7,9,12,11,12­,5,15,16,19,20,11,10,14,­10,13,9), 5,5)
lp.assign (assign.costs)
lp.assign (assign.costs)$so­lution

#############­############

library(lpSolveAPI)
lpmodel <- make.lp(0, 2)
lp.control(lpmodel, sense="max")
set.objfn(lpmodel, c(50, 40))
add.constrain­t(lpmodel, c(2, 3), "<=", 150)
add.constrain­t(lpmodel, c(2, 1), "<=", 1000)
lpmodel

#############­########################3

A = matrix(nrow = 3, ncol = 3, data = c(4, 2, 5, 3, 2, 3, 0, 2, 1))
b = c(4,0,2)
solve(A,b)

#############­########################­###############3
predaj=c(9,5,18­,14,10,12,7,11,5,16,14,1­1)
cena=c(18,24,9­,15,17,16,20,15,22,14,15­,19)

tabulka=data.fra­me(predaj,cena)
ciara=lm(predaj~ce­na,data=tabul­ka)
plot(tabulka)
abline(ciara)
#############­########################­###############

f=function(x){
5*sin(x)-exp(x)
}

curve(5*sin(x),-5,5)
curve(exp(x),ad­d=TRUE, col="blue")

# vsetky sa nedaju najst.........

uniroot(f, lower=-4, upper=-2, tol=1e-4)
uniroot(f, lower=0, upper=1, tol=1e-4)
uniroot(f, lower=1, upper=2, tol=1e-4) # najvyssi koren

< /code>

Nahoru Odpovědět 1. května 20:42
Neaktivní uživatelský účet
Avatar
OLAA LALLA
Člen
Avatar
OLAA LALLA:10. května 9:59

install.packa­ges("data.table")
library("data­.table")
set.seed(9)
tabulka = data.table(A=9:1 ,B= rep( c ("c","d","e")), each=3, C=rnorm(9), D=1:9 )
tabulka
tabulka$D[c(3,5)]­=NA # Pridajte do stlpca D prazdnu hodnotu(NA) na miesto 3 a 5
tabulka
tabulka[order(ta­bulka$A)] # usporiadajte celu tabulku podla stlpca A
tabulka[D<4] # vyberte tie riadky ktore maju v stlpci D hodnoty <4
mean(tabulka$C) # vypocitajte prieme tabulky C
tabulka[,E:=sum(A), by=B] # pridajte do tabulky stlpce E ktory bude obsahovat sumu A podla B
all(tabulka$C>0) # Vrathe hodnotu T alebo F ak sa v tabulke C nachadza hodnota Vacsia ako 0
tabulka[,.N,by=B] # vypiste pocet jednotlivych kategorii stlpca B
sort(tabulka$C) # usporiadajte iba stlpec C
tabulka[(which(ta­bulka$A != is.na(A))),mean(A)] # vypocitajte priemer stlpca A
tabulka[,E:=B2] # novy stlpec E kde budu hodnoty B umocnene na druhu
tabulka[,F:=sum(B­),by = D] # novy stlpec F ktory bude obsahovat sumu stlpca B rozdelenu podla D
tabulka[which(ta­bulka$A == is.na(A)) & sum(A), summary(tabulka)] # spocitajte prazdne hodnoty stlpaca A a nasledne vztvorete sumar celej tabulky
tabulka[order(ta­bulka$C)] #usporiadenie celej tabulky podla C


install.packa­ges("data.table")
library("data­.table")
set.seed(20)
tabulka = data.frame(A = rep(c("a","b"), each = 10) , B = rnorm(20) , C= seq(1,100 , by=5),D=1:20 )
tabulka$C[c(1,5,1­0)]=NA
tabulka
quantile(tabulka$D , c(0,0.48,0.56)) # vypocitajte kvantilz pre stlpec D s hodnotami 0 , 48 a 56 %
sum(tabulka=2:4) # vzpocitajte sumu stlpcov pre 2 az 4 stlpec
sum(is.na(tabul­ka$C)) # spocitajte vsetky prazdne hodnoty v stlpci C
mean(tabulka$C) # priemer stlpca C
all(tabulka$C=NA) # vradte hodntu T alebo F stplpca C ak je v nom prazdna hodnota
sort(tabulka$B) # usporiadajte iba stlpec B
tabulka
tabulka[,E:=B2] # vytvorete stlpec E ktory bude mat hodnoty stlpca B umocnene na 2
sort(tabulka$C, decreasing = TRUE) # Usporiadajte iba stlpce C od najvecsiu po najmensiu
tabulka[(which(ta­bulka$B != is.na(B))),mean(B)] # vypocitajte priemer stlpca B bez prazdnych hodnot
tabulka[,.N, by=A] # Vypiste pocetnost roznych hodnot pre stlpec A NEFUNGUJE
tabulka[,F:=A3] # Pridajte novy stlpec F ktory bude mat hodnoty A umocnene na 3
tabulka[D<5] # hodnoty vacsie ako 5v tabulke D
tabulka[,.N,by=B] # pocet elementov podla stlpca B

 
Nahoru Odpovědět 10. května 9:59
Avatar
OLAA LALLA
Člen
Avatar
OLAA LALLA:10. května 9:59

FILEURL

install.packa­ges("csv")
library("csv")
dir.create("Za­pocet3")
setwd("Zapocet3")
dir.create("data")
fileURL="http://sam­plecsvs.s3.ama­zon..."
download.file(fi­leURL,destfile = "SalesJan2009.csv")
data = read.csv("Sales­Jan2009.csv")
head(data,10)
tail(data,15)
data[1:5,2:3]

DATABAZY

install.packa­ges("RMySQL")
library("RMySQL")
cb1 = dbConnect(MySQL(), user = "genome", dbname = "cb1", host = "genome-mysql.cse.ucsc­.edu")
tabulky = dbListTables(cb1) # premenna s nazvom tabulky ulozte vsetkz meno z tabuliek cb1
tabulky[15:31] # vypiste mena 15 az 31 tabuliek
dbListFields(cb1, "microsat") # vypiste vsetky mena autributov tabulky microsat
dbGetQuery(cb1 , "select count(*) from microsat") # pomocou query vipiste pocet riadkov v microsat
mydata = dbReadTable(cb1 , "microsat")
query = dbSendQuery(cb1 , "select * from microsat where bin") # pomocou query vytvorte podmnozinu dat z microsat a vyslednu tabulku pomenujete podmnozina
podmnoyina = fetch(query)
podmnoyina = 100:600 # hodnoty v rozmedzi od 100:600
podmnoyina


JSON

install.packa­ges("jsonlite")
install.packa­ges("curl")
library("jsonlite")
dir.create("Za­pocett2")
setwd("Zapocett2")
mydata = fromJSON("http:/­/web.tuke.sk/fei-cit/...") # nacitajte vo formate JSON z linku
names(mydata) # vypiste mena stlpcov z tychto dat a vsetky mena atrbutov z dat JSON
mydata

XML subor

install.packa­ges("XML")
library("XML")
getwd()
dir.create("Za­pocet1")
setwd("Zapocet1")
fileURL= "https://www.w3scho­ols.com/x... "
download.file(fi­leURL,destfile = "books.xml")
doc <- xmlParse(fileURL) #
root<- xmlRoot(doc) # nacitajte do premennej root tebo XML bey hlavicky


HTML

install.packa­ges("XML")
library("XML")
getwd()
dir.create("Za­pocet3")
temp = htmlParse("http://w­ww.slovakkhl.sk/?pa­...")
tabs = readHTMLTable(temp , stringAsFactor=FAL­SE) # nacitanie html kodu a vztvorenie tabulky tabs
tabs
hraci = tabs[[1]] [c(2:10)] # vytvorenie tabulky hraci ktora obrsahu vsetky stlpce okrem prveho
hraci
names(hraci)[4]=c("te­am") # premenovanie 4 stlpca na team
hraci
as.numeric(hraci$G) # zmenenie datoveho typu z charakteru na numeric
hraci[order(hra­ci$G, decreasing = TRUE),] # usporiadanie tabulky podla stlpca G od najvacsej hodnoty po najmensiu

 
Nahoru Odpovědět 10. května 9:59
Avatar
Uživatel byl zablokován:20. května 22:04

Napište SQL dopyt, ktorý vráti počet features, ktoré majú ohlásený nejaký bug. Stĺpec s výsledkom pomenujte “BUGGED_FEAT”. Pocet feature 3.
SELECT COUNT(feature.ID) FROM feature JOIN bug_feature ON feature.id = bug_feature.fe­ature_id JOIN bug ON bug_feature.bug_id = bug.id;
Napíšte SQL dopyt, vráti celé záznamy komentárov, ktoré boli zverejnené v iný mesiac ako apríl (na roku nezáleží) zoradené podľa dátumu (od najstaršieho po najnovší). V DB su komentare s id 7 a 10
SELECT comments.text FROM comments WHERE NOT EXTRACT(MONTH FROM comments.published_da­te) = 4;
Napíšte SQL dopyt, ktorý vráti v jednom stĺpci všetky dátumy, kedy bol publikovaný nejaký komentár, alebo ohlásený nejaký bug, ale tak, aby sa nedostránili duplikáty. S 18 vysledkami.
SELECT comments.published_da­te FROM comments UNION ALL SELECT BUG.reported_date FROM bug;
Napíšte SQL dopyt, ktorý vráti meno a priezvisko autora najnovšieho komentáru, vo výsledku nech je jeden stĺpec s názvom “MENO” obsahujúci meno a priezvisko oddelené medzerou. Rachel Clark.
SELECT system_user.name||' '||system_user­.surname AS MENO FROM system_user JOIN comments ON system_user.login = comments.login WHERE comments.id IN (SELECT MAX(comments.ID) FROM comments);
Napíšte SQL dopyt, ktorý vráti zoznam používateľov/pou­žívateľa (iba stĺpce name a surname v takom poradí) s najviac komentármi. Pozor, rátajte s tým, že používateľov s rovnakým menom a priezviskom môže byť viac. Julia Jackson.
SELECT system_user.na­me,system_user­.surname FROM ( SELECT system_user.na­me,system_user­.surname, COUNT(bug.ID) FROM system_user JOIN BUG ON system_user.login = bug.reporter_login GROUP BY system_user.lo­gin,system_user­.name,system_u­ser.surname ORDER BY COUNT(bug.ID) DESC ) SYSTEM_USER ROWNUM < 2; - V postgres miesto ROWNUM < 2 → LIMIT 1
Napiste SQL dopyt pouzivatelov ktorych meno zacina na R alebo S. Vysledny stlpec pomenujte Pocet. 3 pouzivatelia.
SELECT COUNT(system_u­ser.name) AS POCET FROM system_user WHERE system_user.name LIKE 'R%' OR system_user.name LIKE 'S%';
Napiste SQL dopyt, ktory vrati opisy (description) tych bugov, ktore boli ohlasene v aprili 2016 zoradene podla datumu ohlasenia od najstarsieho po najnovsi vysledok: je ich 6 a prvy je Formatovanie v sprave nie je zachovane
SELECT BUG.description FROM bug WHERE EXTRACT(YEAR FROM BUG.reported_date) = 2016 AND EXTRACT(MONTH FROM BUG.reported_date) = 4 ORDER BY BUG.reported_date;
Napiste SQL dopyt ktori vrati pouzivatela, ktoreho priezvisko je prve podla abecedy. zobrazte v jednom stlpci jeho meno aj priezvisko oddelene medzerou a vdruhom stlpci jeho rolu vysledok: Jose Campbell
SELECT system_user.name||' '||system_user­.surname, system_user.role FROM system_user ORDER BY system_user.surname ROWNUM < 2; - V postgres miesto ROWNUM < 2 → LIMIT 1
Napiste SQL dopyt, vrati pocet bugov, ktore boli zverejnene v aprili ktorehokolvek roku stlpec s vysledokom nazvite "BUGY" vysledok=6
SELECT COUNT(BUG.ID) AS BUGY FROM bug WHERE EXTRACT(MONTH FROM bug.reported_date) = 4;
Napis SQL dopyt, ktory vrati zoznam pouzivatelov name a surname a pocet ich komentarov z roku 2016 nazov stlpca POCET2016 zobrazte aj tych pouzivatelov, ktory v danom roku nemali ziadny komentar pricom ma byt pri nich pocet 0 ale nezobrazte tych, ktory maju viac ako 1 komentar vysledok: 9
SELECT system_user.na­me,system_user­.surname, COUNT(comments­.published_da­te) AS POCET2016 FROM system_user LEFT OUTER JOIN comments ON system_user.login = comments.login AND EXTRACT(YEAR FROM comments.published_da­te) = 2016 GROUP BY system_user.na­me,system_user­.surname HAVING COUNT(comments.ID) < 2;
Napiste SQL dopyt, ktory vrati zoznam nazvov features , ktore nemaju ziadny taky bug, na ktory bol dany komentar obsahujuci v texte nejaku obmenu retazca "fix" pozor upper na velkosti retazca pismen nezalezi. Vysledok: Email Social Hi
SELECT feature.name FROM feature MINUS SELECT feature.name FROM feature JOIN bug_feature ON feature.id = bug_feature.fe­ature_id JOIN BUG ON bug_feature.bug_id = bug.id JOIN COMMENTS ON bug.id = comments.bug_id WHERE LOWER(comments­.text) LIKE 'fix%' OR LOWER(comments­.text) LIKE '%fix%'; - V postgres miesto MINUS → EXCEPT
Napíšte SQL dopyt, ktorý vráti v jednom stĺpci mená dokopy s priezviskami používateľov.Vys­ledny stlpec pomenujte MENA A zabezpecte, aby vo výsledku nemal duplikáty.
SELECT system_user.name AS MENA FROM system_user UNION SELECT system_user.surname FROM system_user; Napíšte SQL dopyt, ktorý vráti v jednom stĺpci mená dokopy s priezviskami používateľov. Vo výsledku zachovajte aj duplikáty.
select name from system_user union all select surname from system_user; Napíšte SQL dopyt, ktorý vráti celé záznamy tých bugov, ktoré boli ohlásené pred rokom 2016(reported_date) zoradené abecedne podľa názvu.
select * from bug where extract (year from REPORTED_DATE)<2016 order by title; Napíšte SQL dopyt, ktorý vráti používateľov, ktorí nemajú žiaden komentár. Zobrazte ich login, meno (name) a priezvisko (surname) v takomto poradí.
SELECT LOGIN, NAME , SURNAME FROM( SELECT NAME , SURNAME ,LOGIN FROM SYSTEM_USER MINUS( SELECT SYSTEM_USER.NAME ,SYSTEM_USER.SUR­NAME,SYSTEM_U­SER.LOGIN FROM SYSTEM_USER JOIN COMMENTS ON COMMENTS.LOGIN = SYSTEM_USER.LOGIN ));
pouzivatelov s najviac komentarmi pozor ratajte s tym ze pouzivatelov s rovnakym meno a priezvisko moze byt viac
select system_user.name , system_user.surname from SYSTEM_USER join (select system_user.login , count(comments.id) as pocet from SYSTEM_USER join COMMENTS on SYSTEM_USER.LOGIN = COMMENTS.LOGIN group by system_user.login) d on d.login = system_user.login where d.pocet = (select max(pocet) from (select system_user.login , count(comments.id) as pocet from SYSTEM_USER join COMMENTS on SYSTEM_USER.LOGIN = COMMENTS.LOGIN group by system_user.lo­gin));
napiste sql dopyt, ktory vrati pouyivatelov ktory nemaju ziaden komentar yobrayte ich login meno prieyvisko vysledok su 3
select login, name, surname from(select login, name, surname from SYSTEM_USER minus select s.login, s.name, s.surname from SYSTEM_USER s join COMMENTS c on c.login=s.login );
Napiste SQL dopyt, ktori vrati pouzivatelov, ktory neohlasili ziaden BUG zobrazte ich meno a priezvisko je ich 9
SELECT NAME , SURNAME from( SELECT NAME , SURNAME ,LOGIN FROM SYSTEM_USER MINUS SELECT SYSTEM_USER.NAME ,SYSTEM_USER.SUR­NAME,SYSTEM_U­SER.LOGIN FROM SYSTEM_USER JOIN BUG ON BUG.REPORTER_LOGIN = SYSTEM_USER.LOGIN );

 
Nahoru Odpovědět 20. května 22:04
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 14 zpráv z 14.