Hoď ma hore
prihlásenie:
Registrácia  |  Zabudnuté heslo
tu sa nachádzate: hlavná stránka  počítače  téma
kategórie:  

Jazyk R

20
reakcií
2541
prečítaní
Tému 3. novembra 2015, 09:22 založil dano9413.

podobné témy:

názov témy
posledná
reakcií
25. 03. 2019
23
25. 04. 2019
40
04. 11. 2015
74
11. 11. 2007
15
04. 04. 2011
49
14. 12. 2011
24
 
 


1.
označiť príspevok

dano9413 muž
   3. 11. 2015, 09:22 avatar
Sťahovanie tetového súboru
fileUrl <- "web.tuke.sk Tento odkaz smeruje mimo DF.sk
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"


2.
označiť príspevok

dano9413 muž
   3. 11. 2015, 09:22 avatar
Sťahovanie excel súboru
library(xlsx)
install.packages("xlsx"
fileUrl <- "web.tuke.sk Tento odkaz smeruje mimo DF.sk
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)


3.
označiť príspevok

dano9413 muž
   3. 11. 2015, 09:24 avatar
Sťahovanie XML súboru
library(XML)
install.packages("XML"
fileUrl <- "www.w3schools.com Tento odkaz smeruje mimo DF.sk
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


11.
označiť príspevok

dano9413 muž
   3. 11. 2015, 11:25 avatar
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


4.
označiť príspevok

dano9413 muž
   3. 11. 2015, 09:29 avatar
Sťahovanie Json súboru
library(jsonlite)
install.packages(jsonlite)
data_json = fromJSON("" target="_blank" rel="nofollow" title="http://web.tuke.sk/fei-cit/butka/res/data.JSON"">web.tuke.sk Tento odkaz smeruje mimo DF.sk # 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("" target="_blank" rel="nofollow" title="http://www.catholic-hierarchy.org/bishop/spope0.html"">www.catholic-hierarchy.org Tento odkaz smeruje mimo DF.sk # 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


5.
označiť príspevok

lalok
   3. 11. 2015, 09:43 avatar
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
Súhlasí dano9413


6.
označiť príspevok

lalok
   3. 11. 2015, 09:46 avatar
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
Súhlasí dano9413


7.
označiť príspevok

dano9413 muž
   3. 11. 2015, 09:47 avatar
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))


8.
označiť príspevok

lalok
   3. 11. 2015, 09:52 avatar
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
Súhlasí dano9413


9.
označiť príspevok

dano9413 muž
   3. 11. 2015, 09:53 avatar
Posledná vec ku tabuľkám, samotné spájanie.

# dl.dropboxusercontent.com Tento odkaz smeruje mimo DF.sk
# dl.dropboxusercontent.com Tento odkaz smeruje mimo DF.sk
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


10.
označiť príspevok

lalok
   3. 11. 2015, 11:15 avatar
EXPLORATORY GRAPHS

download.file("" target="_blank" rel="nofollow" title="http://web.tuke.sk/fei-cit/butka/res/avgpm25.csv","data/avgpm25.csv"">web.tuke.sk Tento odkaz smeruje mimo DF.sk
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")


12.
označiť príspevok

lalok
   3. 11. 2015, 13:29 avatar
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)


13.
označiť príspevok

lalok
   3. 11. 2015, 14:36 avatar
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)


14.
označiť príspevok

lalok
   3. 11. 2015, 14:47 avatar
x=sample(1:6, 4, replace = TRUE)


15.
označiť príspevok

Wolfe muž
   4. 11. 2015, 07:16 avatar
Tak mi to asi fakt vcera neodoslalo..

Som pisal, ze zvlastny jazyk, pripomina mi to jazyk LUA smrncnuty kvapkou ERLANGu..


16.
označiť príspevok

mrs_smi
   1. 5. 2019, 19:50 avatar
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


17.
označiť príspevok

mrs_smi
   1. 5. 2019, 19:51 avatar
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)


18.
označiť príspevok

gabriel pb
   1. 5. 2019, 19:51 avatar
profesionálny it-čkári si posielajú kvetinové odkazy


19.
označiť príspevok

mrs_smi
   1. 5. 2019, 19:52 avatar
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 <- "people.tuke.sk Tento odkaz smeruje mimo DF.sk
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 <- "people.tuke.sk Tento odkaz smeruje mimo DF.sk
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 <- "www.w3schools.com Tento odkaz smeruje mimo DF.sk
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("" target="_blank" rel="nofollow" title="http://people.tuke.sk/peter.butka/res/data.JSON"">people.tuke.sk Tento odkaz smeruje mimo DF.sk # 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("" target="_blank" rel="nofollow" title="http://www.catholic-hierarchy.org/bishop/spope0.html"">www.catholic-hierarchy.org Tento odkaz smeruje mimo DF.sk # 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


20.
označiť príspevok

mrs_smi
   1. 5. 2019, 19:54 avatar
#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)


21.
označiť príspevok

mrs_smi
   1. 5. 2019, 19:54 avatar
#nacitanie dat
download.file("" target="_blank" rel="nofollow" title="http://people.tuke.sk/peter.butka/res/avgpm25.csv","avgpm25.csv"">people.tuke.sk Tento odkaz smeruje mimo DF.sk
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()
váš príspevok

Pridávať príspevky môžu iba zaregistrovaní účastníci fóra.

Som zaregistrovaný

nick: heslo:
zostať trvalo prihlásený    
Nie som zaregistrovaný

Vaša prezývka:  

Po zaregistrovaní budete automaticky presmerovaní do tejto témy.

najnovšie príspevky na celom fóre

dnes, 15:28,  (56) To je zas nejaký bubák. Ja mám dva počítače z Číny a vôbec ma to nezruinovalo. To...
dnes, 15:21,  (2) Hokejis, samozrejme, že nie. Veď už dlhší čas je nielen naša slovenská, ale aj celá...
dnes, 15:21,  samozrejme nie je to len o formách( inač to je moja profesia) ale, je to o všetkom spotrebnom...
dnes, 15:14,  (54) Ja ti nebudem vysvetľovať, prečo hľadám informácie o Osvietenom a ďalších. Mám na...
dnes, 15:11,  tu netreba nič písať......lacné veci z Číny nás môžu zruinovať.....Viem o viacerých...
dnes, 15:07,  53. - era- špehuješ diskutérov z Df krízom krázom po internete, kde čo píšu ? *19
dnes, 15:06,  50. prečo by som nadávala slušnym ludom do chamrade a úchylov ? krem toho ze chamradou nazyva...
dnes, 15:05,  46. Každého z nás osud skúša :) "When humans hurt us, it’s not really them...
dnes, 15:03,  (43) No, skús niečo napísať o tej silnejúcej Číne. Prečo by sme sa jej mali báť?
dnes, 15:02,  19. poznáš ten príbeh o svätoplukovych prútoch ? asi tak :)
dnes, 15:00,  Ty zamestnávaš iných ľudí? Tak, to musia byť z teba nadšení, keď im nadávaš do...
dnes, 15:00,  40. čo by ste robili bez únie, zase by ste museli vypisovat o iluminátoch a o HARP , a...
dnes, 14:54,  lenže Rusko je zavisle na predaji ropy.....ono ju musí momentalne predavať, inač ma...
dnes, 14:52,  38. dunning - kruger efekt . choj si to vygoooglit vypatlané .
dnes, 14:50,  39. -era- jeho osud skúša ??? ja minule reagujem na kasafranov hoax a hentá chamrad mi píše...
dnes, 14:47,  To nie je také jednoduché. Európska Únia má v sebe dobrú myšlienku, je výborným...
dnes, 14:47,  (7) Thomas Anderson, dovolím si Ťa poopraviť - Scarlet je na svoj "vyvolený"...
dnes, 14:47,  Tvoje "argumenty" sú smiešne......Rusko nie je závislé na nikom a ropu od nich...
dnes, 14:47,  Silna Unia nie je fraška, je to jedina dobrá odpoved silnejúcej Číne......
dnes, 14:45,  41. Výhoda v tom nie je žiadna. Je to iba výber voči druhej možnosti - hádať sa do...
neprehliadnite
df.sk na Facebooku
vyhľadávanie
 
Keď vytočíte nesprávne číslo, nikdy nie je obsadené.
Prevádzkuje df.sk | TOPlist
(124 401 bytes in 0,407 seconds)