hoď ma hore
Milí diskutujúci. Pri diskutovaní prosím: 1. nepridávaj témy pozostávajúce len z odkazov alebo jednoslovné témy / 2. nepridávaj uražlivé alebo vulgárne komentáre. Ak tieto pravidlá nedodržíš, tvoja téma pravdepodobne skončí v koši. Príjemné diskutovanie :)
none
ak chceš diskutovať, musíš sa registrovať. registrácia

tu sa nachádzaš : 

hlavná stránka  /  počítače  /  téma

Jazyk R

príspevkov
20
zobrazení
0
tému vytvoril(a) 3.11.2015 09:22
posledná zmena 1.5.2019 19:54
1
03.11.2015, 09:22
Sťahovanie tetového súboru
fileUrl <- "odkaz
download.file(fileUrl, destfile = "data\\iris.csv")
datum <- date()
list.files("data")
iris = read.table("data\\iris.csv", sep = ";", header = TRUE)
head(iris,3)
tail(iris,4)

iris1 = read.csv("data\\iris.csv")
iris2 = read.csv2("data\\iris.csv")
none
2
03.11.2015, 09:22
Sťahovanie excel súboru
library(xlsx)
install.packages("xlsx")
fileUrl <- "odkaz
download.file(fileUrl,destfile="./data/iris_excel.xlsx")
iris_excel = read.xlsx("./data/iris_excel.xlsx",sheetIndex = 1, header = TRUE)
subdata = read.xlsx("./data/iris_excel.xlsx",sheetIndex = 1, colIndex = 2:3, rowIndex = 1:5)

iris_excel1 = read.xlsx2("./data/iris_excel.xlsx",sheetIndex = 1, header = TRUE)
none
3
03.11.2015, 09:24
Sťahovanie XML súboru
library(XML)
install.packages("XML")
fileUrl <- "odkaz
doc <- xmlTreeParse(fileUrl,useInternal=TRUE) # uloží XML súbor, ak je FALSE tak aj ďalšie informácie
root <- xmlRoot(doc) # výpis bez hlavičky <?xml version="1.0" encoding="UTF-8"?>
xmlName(root) # výpis hlavného tagu

root[[2]] # výpis druhého jedla
root[[2]][[1]] # výpis druhého jedla a prvého prvku (názov)

xmlSApply(root,xmlValue) # vypíše všetky jedlá a informácie o nich do jedného riadku
none
11

3. 03.11.2015, 09:24

Sťahovanie XML súboru
library(XML)
install.packages("XML")
fileUrl <- "http://www.w3schools.com/xml/simple.xml"
doc <- xmlTreeParse(fileUrl,useInternal=TRUE) # uloží XML súbor, ak je FALSE tak aj ďalšie informácie
root <- xmlRoot(doc) # výpis bez hlavičky <?xml version="1.0" encoding="UTF-8"?>
xmlName(root) # výpis hlavného tagu

root[[2]] # výpis druhého jedla
root[[2]][[1]] # výpis druhého jedla a prvého prvku (názov)

xmlSApply(root,xmlValue) # v...

03.11.2015, 11:25
Vyberanie dát z XML súborov: XPATH

xpathSApply(root,"//name",xmlValue) # vypíše iba mená jedál
xpathSApply(root,"//price",xmlValue) # vypíše iba ceny jedál
none
4
03.11.2015, 09:29
Sťahovanie Json súboru
library(jsonlite)
install.packages(jsonlite)
data_json = fromJSON("odkaz # načítanie dát
names(data_json) # výpis stlpcov
names(data_json$adresa) # výpis prvok, z ktorých sa skladá stlpec adresa

data_json$adresa$mesto # výpis miest v dátach

Sťahovanie HTML súboru
library(XML)
s = htmlParse("odkaz # zadanie odkazu
tabs = readHTMLTable(s, stringsAsFactors=FALSE) # načítanie HTML do tabulky
popes = tabs[[1]][2:6,c(2,3,5)] # výber iba pápežov (tab.1) v 2 až 6 riadku a k ním 2,3,5 stlpec
names(popes) = c("meno","narodeny", "zvoleny") # pomenovanie stlpcov
none
5
03.11.2015, 09:43
DATA TABLE

library(data.table)
DF = data.frame(x=rnorm(9),y=rep(c("a","b","c"),each=3),z=rnorm(9))

DT = data.table(x=rnorm(9),y=rep(c("a","b","c"),each=3),z=rnorm(9))

tables()

DT[DT$x > 0] # výber riadkov len kde hodnota stlpca X > 0
DT[,mean(x)] # výpis priemeru stlpca X
DT[,table(y)] # výpis v tabulke počty hodnot slpca Y
DT[,w:=z^2] # vytvorenie nového stlpca w, ktorý ma hodnoty z^2
DT[,f:=x>0] # vytvorenie stlpca f, ktorý má hodnotu T/F, podľa toho či X je väčšie ako 0
DT[,y:={tmp = x+y; tmp^2}] # zmena stlpca a viac operácií v jednom expression
DT[,b:=sum(x),by=f] # suma hodnôt X podľa hodnôt stlpca f
DT[,.N,by=f] # počet elementov podľa faktoru f

DT1 <- data.table(x=rep(c("a","b","c"),each=100), y=rnorm(300)) # vytvorenie tabulky, kde x má hodnoty a,b,c
setkey(DT,x) # nastavenie premennej kľúča
DT1['a']

DT2 <- data.table(x=c('a', 'a', 'b', 'dt1'), y=1:4) # tabulka, slpce x a y
DT3 <- data.table(x=c('a', 'b', 'dt2'), z=5:7) # tabulka, stlpca x a z
setkey(DT2, x) # nastavenie klúča
setkey(DT3, x) # nastavenie klúča
merge(DT2, DT3) # spojenie tabuliek
none
6
03.11.2015, 09:46
SUBSETTING SORTING

X <- data.frame("var1"=sample(1:5),"var2"=sample(6:10),"var3"=sample(11:15))
X$var2[c(1,3)] = NA

X[,1] # výber všetkých riadkov a 1 stlpca
X[,"var1"] # výber všetkých riadkov a stlpca s názvom "var1"
X[1:2,"var2"] # výber 1 až 2 riadka a stlpca s názvom "var2"

X[(X$var1 <= 3 & X$var3 > 11),] # výber riadkov, ktoré splňajú dané podmienky a všetky stlpce (& - a zároveň)
X[(X$var1 <= 3 | X$var3 > 15),] # výber riadkov, ktoré splňajú jednu z daných podmienok a všetky slpce (| - alebo)

X[which(X$var2 > 8),] # výber riadkov kde var2 > 8, which - ignorovanie NA hodnôt

X$d = rnorm(5) # pridanie stlpca d
Y = cbind(X,rnorm(5)) # vytvorenie tabulky/matice Y s dátami X a novým slpcom

sort(X$var1) # usporiadanie premennej var1 zostupne(od najmenšieho po najväčšie)
sort(X$var1,decreasing=TRUE) # usporiadanie premennej var1, vzostupne, default je FALSE
sort(X$var2,na.last=TRUE) # usporiadanie var2, berie do úvahy aj prázdne hodnoty
X[order(X$var1),] # usporiadanie celého DF podľa premennej var1
X[order(X$var1,X$var3),] # viac premenných pre usporiadanie, usporiada potom podľa poradia v order
none
7

6. 03.11.2015, 09:46

SUBSETTING SORTING

X <- data.frame("var1"=sample(1:5),"var2"=sample(6:10),"var3"=sample(11:15))
X$var2[c(1,3)] = NA

X[,1] # výber všetkých riadkov a 1 stlpca
X[,"var1"] # výber všetkých riadkov a stlpca s názvom "var1"
X[1:2,"var2"] # výber 1 až 2 riadka a stlpca s názvom "var2"

X[(X$var1 <= 3 & X$var3 > 11),] # výber riadkov, ktoré splňajú dané podmienky a všetky stlpce (& - a zároveň)
X[(X$var1 <= 3 | X$var3 > 15),] # výber riadkov, ktoré splňajú...

03.11.2015, 09:47
Pokračovanie v druhom type tabuliek

s1 = seq(1,10,by = 2)
s2 = seq(1,10,length = 3)

X <- data.frame("var1"=sample(1:5),"var2"=sample(6:10),"var3"=sample(11:15))
X$c = ifelse(X$var1 > 0,TRUE,FALSE) # vytvorenie binárneho stlpca c
X$d = cut(X$var1,breaks = quantile(X$var1)) # vytvorenie kategorialnej premennej z numerického atribútu

install.packages("Hmisc")
library(Hmisc)
X$e = cut2(X$var1,g=4) # vytvorenie kategorickej premennej cez príkaz cut2
X$f = factor(X$var1) # vytvorenie faktoru z premennej var1

yesno <- sample(c("yes","no"),size=10,replace=TRUE) # vytvorenie vektora s dlžkou 10 z hodnôt yes,no
yesnofac = factor(yesno,levels=c("yes","no")) # vytvorenie faktora a zadanie levelov
relevel(yesnofac,ref="no") # zmena poradia levelov

install.packages("plyr")
library(Hmisc)
library(plyr)
X2 = mutate(X,novy = cut2(var1,g=4))
none
8
03.11.2015, 09:52
SUMMARIZING

iris <- iris
head(iris,5)
tail(iris,6)
summary(iris) # sumár info o každom atribúte (stlpci)
str(iris) # datailný pohľad na atribúty
quantile(iris$Sepal.Length) # kvantily pre numerické atribúty, rovnaké ako v summary, je však možné nastaviť vlastné rozdelenie
quantile(iris$Sepal.Length,c(0,0.5,1)) # kvantily iba pre 0,50 a 100%
table(iris$Sepal.Length) # štatistika početnosti rôzných hodnôt atribútu
table(iris$Sepal.Length,iris$Sepal.Width) # môžeme zadať aj viac premenných

rowSums(iris[,1:2]) # súčet riadkov prvých 2 stlpcov
colSums(iris[,1:2]) # súčet prvých 2 stlpcov

sum(is.na(iris$Sepal.Length)) # počet prázdnych hodnôt stlpca
any(is.na(iris$Sepal.Length)) # T alebo F, podľa toho, či sú v stlpci prázdne hodnoty
all(iris$Sepal.Length > 0) # testovanie, či sú všetky hodnoty v stlpci väčšie ako 0
colSums(is.na(iris)) # počet prázdnych hodnôt v každom stlpci
all(colSums(is.na(iris))==0) # T alebo F o tom, či sú všetky počty NA hodnôt 0
table(iris$Sepal.Length %in% c(5.1,5.0)) # výber počtu hodnôt vybraného stlpca
table(iris$Species %in% c("setosa","viginica"))
table(iris$Species %in% c("setosa"))
iris[iris$Species %in% c("setosa"),] # výpis dát len s hodnotou v stlpci Species = setosa

data(UCBAdmissions)
DF = as.data.frame(UCBAdmissions) # vytvorenie dataframe
summary(DF) # súhrn dataframe
xt <- xtabs(Freq ~ Gender + Admit,data=DF) # vytvorenie kontingenčnej tabuľky
xt2 <- xtabs(Freq ~.,DF) # vytvorenie viacrozmernej kontingenčnej tabulky (flat tabulka)
summary(xtabs(Freq ~.,DF)) # sumár nad celou tabuľkou
ftable(xt) # flat tabuľka
none
9
03.11.2015, 09:53
Posledná vec ku tabuľkám, samotné spájanie.

# odkaz
# odkaz
reviews = read.csv("./data1/reviews.csv")
solutions <- read.csv("./data1/solutions.csv")

names(reviews)
names(solutions)
intersect(names(reviews),names(solutions)) # spoločne názvy atribútov

merged1 = merge(reviews,solutions,by="id")
merged2 = merge(reviews,solutions,by.x="solution_id",by.y="id")
merged3 = merge(reviews,solutions,by.x="solution_id",by.y="id",all=TRUE) # pridá aj nenamapované riadky
merged4 = merge(reviews,solutions,all=TRUE) # pokúsi sa o defaultné spojenie cez všetky spoločné atribúty

library(plyr)
df1 = data.frame(id=sample(1:10),x=rnorm(10))
df2 = data.frame(id=sample(1:10),y=rnorm(10))
arrange(join(df1,df2),id) # spojenie df1 a df2 pomocou knižnice plyr a stlpca id

df3 = data.frame(id=sample(1:10),z=rnorm(10))
dfList = list(df1,df2,df3) # vytvorenie listu z prvkov df1,df2,df3
join_all(dfList) # spojenie všetkych prvkov listu
none
10
03.11.2015, 11:15
EXPLORATORY GRAPHS

download.file("odkaz
pollution <- read.csv("data/avgpm25.csv", colClasses = c("numeric", "character","factor", "numeric", "numeric"))
head(pollution)

summary(pollution$pm25)
boxplot(pollution$pm25, col = "blue") # boxplot atribútu pm25, farba modrá
hist(pollution$pm25, col = "green") # histogram pm25, zelená farba
rug(pollution$pm25)

hist(pollution$pm25, col = "green", breaks = 100) # histogram pm25, breaks = rozdelenie v grafe
rug(pollution$pm25)

boxplot(pollution$pm25, col = "blue")
abline(h = 12) # boxplot s pridanou čiarou na čísle 12

hist(pollution$pm25, col = "green")
abline(v = 12, lwd = 2) # pridanie čiary vertikálne na čislo 12, hrúbka 2
abline(v = median(pollution$pm25), col = "magenta", lwd = 4) # čiara na mediane, ružovou farbou, hrúbka 4

# barplot, pre stlpec region, s danou farbou a nadpisom
barplot(table(pollution$region), col = "wheat", main = "Number of Counties in Each Region")

# boxplor pre 2 atribúty
boxplot(pm25 ~ region, data = pollution, col = "red")
boxplot(pollution$pm25 ~ pollution$region, col = "red")

par(mfrow = c(2, 1), mar = c(4, 4, 2, 1)) # nastavenie pre rozdelenie grafov, mar(dole,vľavo,hore,vpravo)
hist(subset(pollution, region == "east")$pm25, col = "green") # histogram pre podmnožinu dát (subset)
hist(subset(pollution, region == "west")$pm25, col = "green")

with(pollution, plot(latitude, pm25)) # scatterplot (bodový graf) z dát pollution, atribúty latitude, pm25
abline(h = 12, lwd = 2, lty = 2) # pridanie horizontálnej čiary, s hrúbkou 2 a typ čiary 2(prerušovaná)

with(pollution, plot(latitude, pm25, col = region)) # scatterplot (bodový graf) z dát pollution, pre latitude a pm25, rozdelenie farieb podľa hodnoty region
abline(h = 12, lwd = 2, lty = 2)
# legenda, vpravo hore, názvy legendy sú levely v regione, farby, typ označenia
legend(x="topright", legend = levels(pollution$region), col=c("red","black"), pch=1)

par(mfrow = c(1, 2), mar = c(5, 4, 2, 1))
with(subset(pollution, region == "west"), plot(latitude, pm25, main = "West"))
with(subset(pollution, region == "east"), plot(latitude, pm25, main = "East"))
none
12
03.11.2015, 13:29
LAPPLY
lapply(Y,function(element) element[,1])

x <- list(a = 1, b = 1:3, c = 10:100)
lapply(x, FUN = length)
sapply(x, FUN = length)
lapply(x, FUN = sum)
sapply(x, FUN = sum)

x1 <- list(a = matrix(1:4, 2, 2), b = matrix(1:6, 3, 2))
lapply(x1, function(elt) elt[,1])

X = list(a = 1:5, b = 6:10)
lapply(X,mean)
sapply(X,mean)

lapply(X,quantile)
lapply(X,quantile,c(0,0.5,1))
lapply(X,quantile,probs = seq(0,1,0.5))

sapply(X,quantile)
sapply(X,quantile,c(0,0.5,1))
sapply(X,quantile,probs = seq(0,1,0.5))

APPLY
M <- matrix(1:6,3,2)
apply(M,2,sum) # súčet stlpcov
apply(M,1,sum) # súčet riadkov
apply(M,1,mean)
apply(M,2,mean)

x <- matrix(rnorm(12), 4, 3)
apply(x, 1, quantile, probs = c(0.25, 0.75))

a <- array(rnorm(2*2),c(2,2,10)) # 40 prvkov, veľkosť 2x2 a 10 krát
apply(a,c(1,2),mean)

m <- matrix(c(1:10, 11:20), nrow = 10, ncol = 2)
m
apply(m, 1:2, function(x) x/2)
none
13
03.11.2015, 14:36
f = seq(1,100, by = 2) postupnost seq(x,y, by z)
x=od
y=po
z = rozdiel medzi nimi

vytvorenie matice
matica=matrix(1:10,5,2)

vytvorenie matice ako chcem
M=matrix(c(6:10, 16:20),5,2)

vytvorenie vektora
vektor=c(1,2,3,4,5)
none
14
03.11.2015, 14:47
x=sample(1:6, 4, replace = TRUE)
none
15
04.11.2015, 07:16
Tak mi to asi fakt vcera neodoslalo..

Som pisal, ze zvlastny jazyk, pripomina mi to jazyk LUA smrncnuty kvapkou ERLANGu..
none
16
01.05.2019, 19:50
x <- 5
x
print(x)

y = 10
y

# komentar

msg = "hello"
msg

x = 5:15
x # implicitny vypis
x[6]

#vektor
x = vector(mode = "logical", length = 10)
x

v <- c(1.2, 0.7) # numericky vektor
v <- c(TRUE, FALSE) # vektor logickyh hodnot
v <- c(T, F, T) # vektor logickych hodnot
v <- c("y", "w", "z") # vektor znakov
v <- 3:10 # celociselny vektor
v <- c(1+3i, 2+2i) # komplexny vektor

# implicitna korekcia
z <- c(2.5, "ahd") # vysledok - vektor znakov
z <- c(TRUE, 7) # vysledok - numericky vektor
z <- c("a", TRUE) # vysledok - vektor znakov

#uprava typu vektora
x <- 0:4
class(x)
as.numeric(x)
as.logical(x)
as.character(x)


#Matice
M = matrix(nrow = 2, ncol = 3) #nrow- pocet riadkov, ncol- pocet stlpcov
M
dim(M)
M = matrix(1:6,nrow = 2, ncol = 3)
M

L <- 1:10 # vytvori vektor 10 integer hodnot
L
dim(L) <- c(2, 5)
L

x <- 3:5
y <- 13:15
cbind(x, y) #vytvori maticu do stlpca
rbind(x, y) #vytvori maticu do riadku

#zoznam
zoznam = list(0.2, "h", list("h2", 1 + 2i), TRUE)
zoznam

x = factor(c("ford", "bmw", "ford", "bmw", "bmw"))
x
table(x)
unclass(x)

#datum a cas
x = Sys.Date() #zobrazi datum
x
y = Sys.time() #zobrazi datum a cas
y

#NA- Not Available (chybajuca hodnota), NaN- Not A Number (nedefinovana)
x <- c(1, NaN, NA)
is.na(x)
is.nan(x)

#data frames- ukladanie tabulkovych dat
tab = data.frame(a1= 1:5, a2 = c(0.2, 0.7, 1.5, 2.2,3.4))
tab

#nazvy objektov
x = 1:2
names(x) = c("a1", "a2")
x

x = list(a = 1, b = 2, c = 3)
x

m = matrix(1:4, nrow = 2, ncol = 2)
dimnames(m) = list(c("a", "b"), c("c", "d"))
m

#pristup k podmnozinam
x <- c("a", "b", "c", "c", "d")
x[1]
x[1:4]
x[x > "a"]
u <- x > "a"
u
x[u]

x <- list(a1 = 1:3, a2 = 0.3, "d")
x[1]
x[[1]]
x$a2
x[["a2"]]
x["a2"]
x[c(1,3)]

#vektorove/maticove operacie
x <- 1:4; y <- 6:9
x + y
x > 2
x >= 2
y == 8
x * y
x / y

M = matrix(1:4, 2, 2)
N = matrix(c(10,5,5,1), 2, 2)
M
N
M * N # nasobenie po elementoch
M %*% N # skutocne nasobenie matic
none
17
01.05.2019, 19:51
f2 <- function(x) {
x^2
}

f <- function(x,y)
{
x + y
x - y
x * y
x / y
}

# if, else - testovacia podmienka
x <- 0
if (x > 0) {
print("Kladne cislo")
} else if (x < 0) {
print("Zaporne cislo")
} else
print("Nula")

# FOR - cyklus fixného poctu opakovani
f = seq(1,100, by = 2)
a = NULL
for (i in 1:50)
{
a[i] = f[i]^2
}
print(a)

#FOR, NEXT - preskoci interakciu v cykle
for(i in 1:100)
{
if(i <= 50)
{
next
}
print(i)
}

# WHILE - cyklus bezi dovtedy kym je platna podmienka
count <- 0
while(count < 10)
{
print(count)
count <- count + 1
}

# REPEAT - spusta nekonecny cyklus, BREAK - ukoncuje beh cyklu
sum <- 1
repeat
{
sum <- sum + 2
print(sum)
if (sum > 11)
break
}

# LAZY - funcia je vyhodnocovana ay v momente ak je potrebna
f <- function(a,b)
{
a^2
}
f(2)

f <- function(x, y = 2) {
x^y
}

# ARGUMENT
args(paste)
paste("a","h","o","j")
paste("a","h","o","j",sep=":")
paste("a","h","o","j",se=":")

# Lexikalny/dynamicky SCOPING
p = 0
f = function(x){
p = 10
p + g(x)
}

g = function(x){
x+p
}
f(2)
#
f <- function(x)
{
y <- 5
x + y
}

# funkcie pre cyklicke spracovanie
# APPLY
M <- matrix(1:6,3,2)
apply(M,2,sum) # sucet stlpcov
apply(M,1,sum) # sucet riadkov
apply(M,1,mean) #urobi sumu po stlpcoch
apply(M,2,mean) #priemer po riadkoch

x <- matrix(rnorm(12), 4, 3)
apply(x, 1, quantile, probs = c(0.25, 0.75))

a <- array(rnorm(2*2),c(2,2,10)) # 40 prvkov, velkost 2x2 a 10 krat
apply(a,c(1,2),mean)

m <- matrix(c(1:10, 11:20), nrow = 10, ncol = 2)
m
apply(m, 1:2, function(x) x/2)
#


#LAPPLY, SAPPLY- zjednodusuje vysledok lapply
X = list(a = 1:5, b = 6:10)
lapply(X,mean)
sapply(X,mean)

lapply(X,quantile)
lapply(X,quantile,c(0,0.5,1))
lapply(X,quantile,probs = seq(0,1,0.5))

sapply(X,quantile)
sapply(X,quantile,c(0,0.5,1))
sapply(X,quantile,probs = seq(0,1,0.5))

##
x <- list(a = 1, b = 1:3, c = 10:100)
lapply(x, FUN = length)
sapply(x, FUN = length)
lapply(x, FUN = sum)
sapply(x, FUN = sum)

#
Y <- list(a = matrix(1:4,2,2),b = matrix(1:8,4,2))
lapply(Y,function(element) element[,1])


x1 <- list(a = matrix(1:4, 2, 2), b = matrix(1:6, 3, 2))
lapply(x1, function(elt) elt[,1])

#TAPPLY- pouzitie na aplikaciu funkcie cez podmnozinu vektora, SPLIT
x <- 1:20
y <- factor(rep(letters[1:5], each = 4))
tapply(x, y, sum)
tapply(x,y,sum,simplify = FALSE)
split(x,y)
#
attach(iris)
tapply(iris$Petal.Length, Species, mean)
tapply(iris$Petal.Length, Species, mean,simplify = FALSE)

split(iris$Petal.Length,Species,drop=FALSE)

#MAPPLY- aplikuje paralelne funkciu podla suboru parametrov
l1 <- list(a = c(1:10), b = c(11:20))
l2 <- list(c = c(21:30), d = c(31:40))

mapply(sum, l1$a, l1$b, l2$c, l2$d)

mapply(sum,1:5,1:5,1:5)

mapply(rep, 1:4, 4:1)
none
18
01.05.2019, 19:52
setwd("../") #nastavenie adresára
# testovanie existencie adresára
file.exists("nazovAdresara")
dir.create("nazovAdresara") #vytvori ak neexistuje
dir.create("data")

# ziskavanie dat zo suborov na webe
fileUrl <- "odkaz
download.file(fileUrl, destfile = "irisdata.csv")
datum <- date()
# nacitanie dat
iris = read.table("irisdata.csv", sep = ";", header = TRUE)

iris1 = read.csv("irisdata.csv") #separator ,
iris2 = read.csv2("irisdata.csv") #separator ;

#head(iris,3) #prvé riadky
#tail(iris,4) #posledné

list.files("SSvHI") #obsah

#nacitavanie excel suborov
library(xlsx)
library(readxl)

fileUrl <- "odkaz
download.file(fileUrl,destfile="irisdata.xlsx",mode = "wb")

iris_excel = read.xlsx("irisdata.xlsx",sheetIndex = 1, header = TRUE)
subdata = read.xlsx("irisdata.xlsx",sheetIndex = 1, colIndex = 2:3, rowIndex = 1:5)

iris_excel1 = read.xlsx2("irisdata.xlsx",sheetIndex = 1, header = TRUE)

#XML

library(XML)
library(RCurl)
fileUrl <- "odkaz
xData = getURL(fileUrl)
doc = xmlParse(xData)

#doc <- xmlTreeParse(fileUrl,useInternal=TRUE) # ulozi XML subor, ak je FALSE tak aj dalsie info
root <- xmlRoot(doc) # vypis bez hlavicky <?xml version="1.0" encoding="UTF-8"?>
xmlName(root) # vypis hlavneho tagu

root[[2]] # vypis druheho jedla
root[[2]][[1]] # vypis druheho jedla a prveho prvku (nazov)

xmlSApply(root,xmlValue) # vypise vsetky jedla a informacie o nich do jedneho riadku
xpathSApply(root,"//name",xmlValue) # vypise iba mena jedal
xpathSApply(root,"//price",xmlValue) # vypise iba ceny jedal

#JSON subory
library(jsonlite)
data_json = fromJSON("odkaz # nacitanie dat
names(data_json) # vypis stlpcov
names(data_json$adresa) # vypis prvok, z ktorych sa sklada stlpec adresa

data_json$adresa$mesto # vypis miest v datach

#RMySQL
library(RMySQL) # nacitanie kniznic
library(DBI)
genDB = dbConnect(MySQL(),user="genome", host="genome-mysql.cse.ucsc.edu") # vytvorenie spojenia
DB = dbGetQuery(genDB,"show databases;") # ukazka dabazy
dbDisconnect(genDB) # ukoncenie spojenia

#########################
hg19 <- dbConnect(MySQL(),user="genome", db="hg19",host="genome-mysql.cse.ucsc.edu") # spojenie
vsetky_tabulky <- dbListTables(hg19) # ziskanie nazvov tabuliek v databaze hg19
length(vsetky_tabulky) # pocet vsetkych tabuliek
vsetky_tabulky[1:6] # vypis prvych 6 tabuliek
dbListFields(hg19,"acemblyPep") # stlpce v tabulke acemblyPep
dbGetQuery(hg19, "select count(*) from acemblyPep") # vypis poctu zaznamov v tabulke

#########################
ailMel1 = dbConnect(MySQL(),user="genome", db="ailMel1",host="genome-mysql.cse.ucsc.edu")
vsetky_tabulky1 <- dbListTables(ailMel1)
vsetky_tabulky1[1:4]
dbListFields(ailMel1, "all_est")
dbGetQuery(ailMel1, "select count(*) from all_est")

#nacitanie tabulky cez dbreadtable
databaza1 <- dbReadTable(ailMel1,"all_mrna")

#vyber podmnoziny dat cez query
query = dbSendQuery(ailMel1, "select * from all_mrna where misMatches = 0") # vyber dat z tabulky s podmienkou
subdata = fetch(query) # vytvorenie dat
subdata[1:6,1:4]

query <- dbSendQuery(hg19, "select * from affyU133Plus2 where misMatches between 1 and 3")
subdata1 <- fetch(query)
quantile(subdata1$misMatches)

#nacitavanie dat z WEB stranok

library(XML)
s = htmlParse("odkaz # zadanie odkazu
tabs = readHTMLTable(s, stringsAsFactors=FALSE) # nacitanie HTML do tabulky
popes = tabs[[1]][2:6,c(2,3,5)] # vyber iba papezov (tab.1) v 2 az 6 riadku a k nim 2,3,5 stlpec
names(popes) = c("meno","narodeny", "zvoleny") # pomenovanie stlpcov
none
19
01.05.2019, 19:54
#DATA.TABLE
DF = data.frame(x=rnorm(9),y=rep(c("a","b","c"),each=3),z=rnorm(9))

DT = data.table(x=rnorm(9),y=rep(c("a","b","c"),each=3),z=rnorm(9)) # odvodene od data.frame, vsetky funkcie pre data.frame funkcne aj pre data.table

tables() #poskytne info o vsetkych tabulkach (data.table)
#operacie s data.table
DT[DT$x > 0] # vyber riadkov - hodnota stlpca X > 0
DT[,mean(x)] # vypis priemeru stlpca X
DT[,table(y)] # vypis v tabulke - pocty hodnot slpca Y (pocetnost)
DT[,w:=z^2] # vytvorenie noveho stlpca w, ktory ma hodnoty z^2
DT[,f:=x>0] # vytvorenie stlpca f, ktory ma hodnotu T/F, podla toho ci X je vacsie ako 0
DT[,y:={tmp = x+z; tmp^2}] # zmena stlpca a viac operacii v jednom expression
DT[,b:=sum(x),by=f] # suma hodnot X podla hodnot stlpca f
DT[,.N,by=f] # vrati pocet elementov podla faktoru f

#PRACA S DATAMI - VYBER A USPORIADANIE
X <- data.frame("var1"=sample(1:5),"var2"=sample(6:10),"var3"=sample(11:15)) #nahodne cisla
X$var2[c(1,3)] = NA

X[,1] # vyber vsetkych riadkov a 1 stlpca
X[,"var1"] # vyber vsetkych riadkov a stlpca s nazvom "var1"
X[1:2,"var2"] # vyber 1 az 2 riadka a stlpca s nazvom "var2"

X[(X$var1 <= 3 & X$var3 > 11),] # vyber riadkov, ktore splnaju dane podmienky a vsetky stlpce (& - a zaroven)
X[(X$var1 <= 3 | X$var3 > 15),] # vyber riadkov, ktore splnaju jednu z danych podmienok a vsetky slpce (| - alebo)

X[X$var2 > 8,]
X[which(X$var2 > 8),] # vyber riadkov kde var2 > 8, which - ignorovanie NA hodnot

X$d = rnorm(5) # pridanie stlpca d
Y = cbind(X,rnorm(5)) # vytvorenie tabulky/matice Y s datami X a novym slpcom

sort(X$var1) # usporiadanie premennej var1 zostupne(od najmensieho po najvacsie)
sort(X$var1,decreasing=TRUE) # usporiadanie premennej var1, vzostupne, default je FALSE
sort(X$var2,na.last=TRUE) # usporiadanie var2, berie do uvahy aj prazdne hodnoty
X[order(X$var1),] # usporiadanie celeho DF podla premennej var1
X[order(X$var1,X$var3),] # viac premenn?ch pre usporiadanie, usporiada potom podla poradia v order

#VYTVARANIE NOVYCH PREMENNYCH
s1 = seq(1,10,by = 2) #vytvori sekvenciu po dvoch (piatich prvkov)
s2 = seq(1,10,length = 3) #vytvori sekvenciu s dlzkou 3

X <- data.frame("var1"=sample(1:5),"var2"=sample(6:10),"var3"=sample(11:15))
X$c = ifelse(X$var1 > 0,TRUE,FALSE) # vytvorenie binarneho stlpca c
X$d = cut(X$var1,breaks = quantile(X$var1)) # vytvorenie kategorialnej premennej z numerickeho atributu

install.packages("Hmisc")
library(Hmisc)
X$e = cut2(X$var1,g=4) # vytvorenie kategorickej premennej cez prikaz cut2
X$f = factor(X$var1) # vytvorenie faktoru z premennej var1

yesno <- sample(c("yes","no"),size=10,replace=TRUE) # vytvorenie vektora s dlzkou 10 z hodnot yes,no
#vytvorenie faktorov
yesnofac = factor(yesno,levels=c("yes","no")) # vytvorenie faktora a zadanie levelov
relevel(yesnofac,ref="no") # zmena poradia levelov

install.packages("plyr")
library(Hmisc)
library(plyr)
X2 = mutate(X,novy = cut2(var1,g=4))


#TRANSFORMACIE

#pomocou numerickych funkcii
abs(-5) #absolutna hodnota
sqrt(9) #odmocnina
ceiling(4.45) # zaokruhli nahor
floor(4.45) # zaokruhli nadol
trunc(4.45) # zaokruhli nadol
round(4.4586325,digits = 5) #zaokruhli na 5 desatinnych miest
signif(4.4586325,digits = 5) #uz iba 5 miest
round(3.475,digits = 2)
signif(3.475,digits = 2)
cos(0.754)
sin(0.754)
log(0.754)
log2(0.754)
log10(0.754)
exp(0.754)

#funkcie na spracovanie retazcov
substr("abcdef", 2, 4) # vytvori podrerazec od 2 az po 4 znak
data <- data.frame(values=c(91, 92, 108, 104, 87, 91, 91, 97, 81, 98),
names = c("fee-", "fi", "fo-", "fum-", "foo-", "foo1234-", "123foo-","fum-", "fum-", "fum-"))
data$values[grep("foo",data$names)]

#nahradzovanie znakov
x <- c("This is a sentence about axis","A second pattern is also listed here")
sub("is", "XY", x)
gsub("is","XY",x)

#rozdelenie retazcov podla split
x <- "Split the words in a sentence."
strsplit(x, "t")
strsplit(x, "l")
strsplit(x, " ")

paste(1,2,3,4,5,sep=".") #pridanie separatora
toupper("programovanie") #zvacsenie pisma
tolower("ABCD") #zmensenie pisma

#SPAJANIE DAT
df1 = data.frame(id=sample(1:10),x=rnorm(10))
df2 = data.frame(id=sample(1:10),y=rnorm(10))
M1 = merge(df1,df2, by="id")
M2 = merge(df1,df2,by.x="id",by.y="id2")
M3 = merge(df1,df2,by.x="id",by.y="id2",all=TRUE) # prida aj nenamapovane riadky
M4 = merge(df1,df2,all=TRUE) # pokusi sa o defaultne spojenie cez vsetky spolocne atributy

library(plyr)
arrange(join(df1,df2),id) # spojenie df1 a df2 pomocou kniznice plyr a stlpca id

df3 = data.frame(id=sample(1:10),z=rnorm(10))
dfList = list(df1,df2,df3) # vytvorenie listu z prvkov df1,df2,df3
join_all(dfList) # spojenie vsetkych prvkov listu

#restruktualizacia dat - zmena struktury

mtcars$carname <- rownames(mtcars)
install.packages("reshape")
library(reshape)

# z dat mtcars vytvorime stlpce id, ktory bude mat hodnoty carname, gear a cyl a nasledne pre stlpce mpg a hp sa vytvoria hodnoty variable a value
carMelt <- melt(mtcars,id=c("carname","gear","cyl"),measure.vars=c("mpg","hp"))
head(carMelt,n=5)

# vstupom su najprv data, na kt. bol aplikovany melt, a nasleduje formula, ktora uruuje ake riadky a stlpce sa kombinuju
cylData <- cast(carMelt, cyl ~ variable)
cylData1 <- cast(carMelt, cyl ~ variable,mean)
none
20
01.05.2019, 19:54
#nacitanie dat
download.file("odkaz
pollution <- read.csv("avgpm25.csv", colClasses = c("numeric", "character","factor", "numeric", "numeric"))
head(pollution) #zobrazi prvych 6 riadkov


#sumar dat
summary(pollution$pm25)

#1D
#BOXPLOT - sumar dat v grafe
boxplot(pollution$pm25, col = "blue") #boxplot atributu pm25, farba modra
abline(h=12) #boxplot s pridanou ciarou na cisle 12, h - horizontalna ciara

#histogram - pocetonosti v intervaloch - frekvencie vyskytu
hist(pollution$pm25, col= "green") #histogram pm25, zelena farba
abline(v=12, lwd=2) #pridanie ciary vertikalne na cislo 12 s hrubkou 2
abline(v = median(pollution$pm25), col = "magenta", lwd = 4) #ciara na mediane, farba ruzova s hrubkou 4
hist(pollution$pm25, col= "green", breaks= 100) #histogram pm25, breaks - rozdelenie v grafe

#rug(pollution$pm25) #zastupenie cisel - konkretne cislo v intervale
#BARPLOT - stlpcovy graf - pre stlpec region, s danou farbou a nadpisom
barplot(table(pollution$region),col="yellow", main= "Number of Counties in Each Region")

#2D extrapolacie dat - pre viacero atributov (viacero boxplotov, histogramov, ...)
#BOXPLOT pre 2 atributy
boxplot(pm25~ region, data= pollution, col= "yellow")
boxplot(pollution$pm25 ~ pollution$region, col="green")

#2 x histogram
par(mfrow= c(2,1), mar= c(4,4,2,1)) #nastavenie pre rozdelenie grafov, 2 riadky/1stlpec, mar(dole,vlavo,hore,vpravo)
par(mfcol = c(1, 2), mar = c(5, 4, 2, 1))

hist(subset(pollution, region == "east")$pm25, col= "blue") #histogram pre podmnozinu dat (subset)
hist(subset(pollution, region == "west")$pm25, col = "red")

#bodovy graf - scatterplot
with(pollution, plot(latitude, pm25)) #scatterplot ( bodovy graf) z dat pollution, atributy latitude, pm25
abline(h=12, lwd= 2, lty=2) #pridanie horizontalnej ciary, s hrubkou 2 a typ ciary 2 (prerusovany)
with(pollution, plot(latitude, pm25, col= region)) #scatterplot(bodovy graf) z dat pollution, pre latitude a pm25, rozdelenie farieb podla hodnoty region
abline(h = 12, lwd = 2, lty = 1) #lty- typ ciary 1 (plna)
legend(x="topright", legend=levels(pollution$region), col=c("red","black"), pch=1) #legenda, vpravo hore, nazvy legendy su levely v regione, farby, typ oznacenia
dev.off() #zatvorenie grafu

#BASE plot
library(datasets)
data(cars)

#SCATTERPLOT
with(cars, plot(speed,dist)) #scatterplot z dat cars, pre speed a dist plot(cars)

#data airquality
hist(airquality$Ozone)
with(airquality, plot(Wind, Ozone))
title(main="Ozone and Wind in New York City") #prida nazov
airquality=transform(airquality, Mont= factor(Month)) #transformacia stplca Month v datach airquality na faktor
boxplot(Ozone ~ Month, airquality, xlab= "Month", ylab= "Ozone (ppb)") #vytvorenie boxplotu pre stlpce Ozone, Month a oznacenie osi x,y

#default values pomocou funkcie PAR
par("lty") #typ ciary
par("col") #farba
par("pch") #typ oznacenia - symbol body
par("bg") #farba pozadia
par("mar") #pozicia- nastavenie okrajov grafov
par("mfrow") # rozdelenie grafov - 1/2/3/4

#vytvorenie grafu z dat airquality, pre stlpce Wind, Ozone, s nadpisom (main) a typom "n" (bez bodov)
with(airquality, plot(Wind, Ozone, main = "Ozone and Wind in New York City ", type = "n"))
with(subset(airquality, Month == 5), points(Wind, Ozone, col = "blue")) #vsetky rovne 5, points = vykreslovanie bodov
with(subset(airquality, Month != 5), points(Wind, Ozone, col = "red"))
legend("topright", pch = 1, col = c("blue", "red"), legend = c("May", "Other Months")) #vytvorenie legendy
model = lm(Ozone ~ Wind, airquality) # vytvorenie modelu pomocou linearnej regresie zo stlpcov Ozone, Wind
abline(model, lwd = 2) # pridanie ciary pomocou vytvoreneho modelu s hrubkou 2
par(mfrow = c(1, 3), mar = c(4, 4, 2, 1), oma = c(0, 0, 2, 0)) #okraje grafu, velkost vonkajsieho grafu
with(airquality, {
plot(Wind, Ozone, main= "Ozone and Wind")
plot(Solar.R, Ozone, main= "Ozone and Solar Radiation")
plot(Temp, Ozone, main= "Ozone and Temperature")
mtext("Ozone and Weather in New York City", outer= TRUE)})
dev.off()

#LATTICE Plot
library(lattice)
state= data.frame(state.x77, region = state.region) #vytvorenie data.frame s hodnotami state.x77 a state.region
xyplot(Population~Murder, state) #bodovy graf SCATTER plot
bwplot(Population~region,state) # BOXPLOT
stripplot(Population~region,state) #verzia boxplotu - s konkretnymi bodmi
histogram(Population~Murder,state) #HISTOGRAM
xyplot(Life.Exp ~ Income | region, data = state, layout = c(4, 1)) # xy plot so stlpcami Life.Exp a Income, rozdelenie dat podla regionu, pre data state a s rozmiestnenim 4 grafov v 1 riadku
p <- xyplot(Ozone ~ Wind, data = airquality) # vytvori graf, ale nevykresli
print(p) #vykresli vytvoreny graf
xyplot(Ozone ~ Wind, data = airquality) # Vykresli
set.seed(10)
x <- rnorm(100)
f <- rep(0:1, each = 50) # 0 a 1 po 50x
y <- x + f - f * x + rnorm(100, sd = 0.5) # vypocet y podla vzorca
f <- factor(f, labels = c("Group 1", "Group 2")) # nastavenie prem. f na faktor s hodnotami Group1 a Group2

xyplot(y ~ x | f, layout = c(2, 1))
xyplot(y ~ x | f, panel = function(x, y, ...) {
panel.xyplot(x, y, ...) # volanie default panelovu funkciu
panel.abline(h = median(y), lty = 2) # pridanie horizontalnej ciary pre median
})

# pridanie regresnej priamky
xyplot(y ~ x | f, panel = function(x, y, ...) {
panel.xyplot(x, y, ...)
panel.lmline(x, y, col = 2) # pridanie regresnej priamky
})

# GGPLOT2
library(ggplot2)
data(mpg) # nacitanie dat mpg
qplot(displ, hwy, data = mpg) # vytvorenie qplot z atributov displ (x-ovy), hwy (y-ovy) z dat mpg
qplot(displ, hwy, data = mpg, color = drv) # rozdelenie garfu farebne podla stributu drv
qplot(displ, hwy, data = mpg, geom = c("point", "smooth")) # pridanie geom. prvku - vloženie hladkej krivky
qplot(hwy, data = mpg, fill = drv) # histogram pre stlpec hwy, z dat mpg, cez faktor drv
qplot(displ, hwy, data = mpg, facets = . ~ drv) # pouzitie facets na zobrazenie viacero grafov cez faktor drv
qplot(hwy, data = mpg, facets = drv ~ .) # histogram pre hwy pre jednotlive faktory z prvkov drv

#vytvorenie PDF a ulozenie v subore
pdf(file = "myplot.pdf")
png(file = "plot.png")
xyplot(Life.Exp ~ Income | region, data = state, layout = c(4, 1))
dev.off()

#pouzitim dev.copy
with(faithful, plot(eruptions, waiting))
title(main = "Old Faithful Geyser data")
dev.copy(png, file = "geyserplot.png")
dev.off()
none

najnovšie príspevky :

prevádzkuje diskusneforum.sk kontaktuj správcu diskusného fóra vytvoril dzI/O 2023 - 2024 verzia : 1.05 ( 17.4.2024 8:30 ) veľkosť : 155 446 B vygenerované za : 0.097 s unikátne zobrazenia tém : 50 335 unikátne zobrazenia blogov : 898 táto stránka musí používať koláčiky, aby mohla fungovať...

možnosti

hlavná stránka nastavenia blogy todo

online účastníci :

nikto je online

hľadanie :

blog dňa :

odkaz Je to ako spoznať naplno svoj potenciál a využiť ho 😉 Je to ako ísť na 100% svojej kapacity, ktorú ako ČLOVEK si schopný mať 😉 Je to ako by si sa zobudil do nového nádherného sveta ...

citát dňa :

Život je ako diamant - tvrdý, ale krásny.