help(c) # napoveda ?c # totez ??c # rozsirene vyhledavani setwd() # nastaveni pracovniho adresare getwd() # ukaze pracovni adresar dir() # ukaze soubory v pracovnim adresari ls() # ukaze objekty v pracovnim prostedi R library() # nacitani knihovny/baliku ##-------------------tvorba dat------------------- ### typy dat cislo <- 1 # vytvoreni datoveho objektu class(cislo) # ukaze typ objektu cislo slovo <- "slovo" class(slovo) slovo vek <- c(63,40,51,22,53,34,19,31) # kombinace jednotlivych prvku do vektoru class(vek) vek mean(vek) # aritmeticky prumer sd(vek) # smerodatna odchylka median(vek) # median min(vek) # minimalni hodnota max(vek) # maximalni hodnota range(vek) # min a max hodnota sum(vek) # suma sto <- 0:100 quantile(sto) # kvantily vek[3] # vyber tretiho prvku vektoru vek[-3] # vybere vsechny prvky krome tretiho pohlavi <- c("muz", "zena", "muz", "muz", "muz", "muz", "zena", "zena") class(pohlavi) str(pohlavi) # zobrazi vnitrni strukturu objektu pohlavi faktor1 <- factor(pohlavi, labels = c("muz", "zena")) # zakoduje dany vektor jako faktor class(faktor1) levels(faktor1) str(faktor1) faktor1 faktor2 <- factor(1:5, labels=c("1", "2", "3", "4", "5")) class(faktor2) levels(faktor2) faktor2 # konverze faktoru faktor1 <- as.character(faktor1) class(faktor1) faktor1 faktor2 <- as.numeric(as.character(faktor2)) class(faktor2) faktor2 ##-------------------zakladni operace------------------- ### logicke operace 5 < 7 7 > 10 5 >= 2+3 5 <= 2+3 5 == 6 5 < 7 & 7 > 10 # & konjunkce 5 < 7 | 7 > 10 # | disjunkce s1 <- c(0,2,3,5,6) # lze provadet i s vektory (a dalsimy typy dat) s2 <- c(1,2,3,4,5) s1 == s2 s <- s1[(s1==s2)] # tvorba noveho vektoru na zaklade shody prvku v prvnim a druhem vektoru s ### aritmeticke operace factorial(4) # faktorial 3^2 # druha mocnina sqrt(9) # druha odmocnina 11^3 # treti mocnina 1331^(1/3) # treti odmocnina log(100) # prirozeny logaritmus log10(100) # desitkovy logaritmus result <- log(100) result round(result, 0) # zaokrouhleni na cela cisla round(result, 2) # zaokrouhleni na dve desetinna mista seq(1,20) # sekvence 1:20 # totez length(sto) # uda delku vektoru length(0:99) rep(0, 20) # replikuje kazdy prvek x-krat (20x) rep(c(0,1), 10) ### vektor vektor0 <- c(rep(20,3), 15:36) vektor0 vektor1 <- c("A", "B", "C", "D", "E") # characters vector vektor1 vektor2 <- c(1,3,4,9,10) # numeric vector vektor2 v <- (1:10) r <- (1:10) vr1 <- v+r # scitani vektoru vr1 vr2 <- v*r # nasobeni vektoru vr2 vr3 <- c(v,r) # kombinovani vektoru vr3 ### matice vr4 <- rbind(v, r) # tvorba matice ze dvou vektoru (rowbind) vr4 vr5 <- cbind(v, r) # tvorba matice ze dvou vektoru (columnbind) vr5 v12 <- cbind(vektor1, vektor2) # pokud vektory obsahuji ruzne typy dat, konverze dat na "characters"! v12 str(v12) # manualni tvorba matice mat <- matrix(c(1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25), ncol=5, nrow=5) mat m <- matrix(1:25, ncol=5, nrow=5) # razeni prvku matice dle sloupcu (default) m n <- matrix(1:25, ncol=5, nrow=5, byrow=T) # razeni prvku matice dle radku (byrow=T) n # operace s maticemi t(n) # transpozice matice diag(n) # diagonala matice m1 <- matrix(rep(c(1,2),2), nrow=2, ncol=2) m1 m2 <- matrix(rep(2,4), nrow=2, ncol=2) m2 m1 + m2 # scitani matic m1 * m2 # nasobeni prvku matic 2*m1 # nasobeni matice cislem m1 %*% m2 # nasobeni matic colnames(n) <- c("jedna", "dva", "tri", "ctyri", "pet") # pojmenovani sloupcu matic n rownames(n) <- colnames(n) # zkopiruje jmena sloupcu na jmena radku n colnames(n) <- NULL # odstrani jmena rownames(n) <- NULL n ### tabulka (data.frame) df0 <- as.data.frame(cbind(c("Alena", "Bedriska", "Cecilka"), c(18, 19, 20))) df0 df <- as.data.frame(cbind(vek, pohlavi)) # na rozdil od matice zachovava typy dat (pokud jsou obsazeny ruzne typy dat) df View(df) fix(df) # manualni editace dat jmeno <- c("Jan", "Hana", "Oldrich", "Dalibor", "Ondrej", "Petr", "Jarmila", "Dagmar") df <- cbind(df, jmeno) df[,1] # vybere prvni sloupec tabulky df[3,] # vybere treti radek tabulky df[c(1,2), c(1,3)] # vybere prvni a druhy radek a prvni a treti sloupec tabulky df$jmeno # vyber sloupce podle nazvu df <- df[,c(3,2,1)] # zmena poradi sloupcu v tabulce (analogicky lze menit i radky) df ##-------------------export a import dat------------------- # pri kopirovani adresy z exploreru nebo total commanderu je treba zmenit smer lomitek z \ na / # v optimalnim pripade by se v ceste nemela vyskytovat interpunkce ani mezery setwd("vlozte adresu pracovniho adresare") # vloze cestu k vasemu pracovnimu adresari write.csv(df, "tabulka.csv", row.names=F) # export dat do *.csv souboru write.table(df, "tabulka.txt") # export dat do *.txt souboru data <- read.csv("tabulka.csv") # import dat z *csv souboru data str(data) tab <- read.table("tabulka.txt") # import dat z *txt souboru tab str(tab) d <- sample(rep(0:1, 25), 25) d m <- matrix(d, nrow=5, ncol=5) m write.csv(m, "matice.csv", row.names=F) matice <- read.csv("matice.csv") matice colnames(matice) <- rownames(matice) matice library(network) # nahraje knihovnu "network" #install.packages("network", dependencies=T) # nainstaluje knihovnu "network" net <- network(matice) # konverze na sitovy objekt plot(net) # vizualizace network.vertex.names(net) # vypise nazvy uzlu network.size(net) # rad site (pocet uzlu) network.density(net) # hustota site