--- output: html_document: default pdf_document: default --- #structuri de date -vectori -matrice -liste -data frameuri ## vectori functia `vector`: #def vectorilor fara elemente ```{r} vector("numeric", length = 5) numeric(5) vector("character", length = 5) character(10) ``` functia `c()`: #fct de concatenare ```{r} x <- c(1.5, 2.9) typeof(x) y <-c("Ana", "are", "mere") x <- c(x, 7) x <-c(1,x) #x2 <- c(1, 2, 4) #x3 <- c(x, x2) z <- c(x,y) typeof(z) ``` functia `rep()`: #repeta vectorul dat de un nr de ori ```{r} help(rep) a <- rep(1, 10) a2 <- rep(c(1, 2), 10) length(a2) rep(c(1, 2, 3), 5) rep(c(1, 2, 3), each = 5) rep(c(1, 2, 3), c(3, 2, 1)) #utila cand vrem sa extragem indici dintr-un vector ``` functia `seq`(): #utila pt grafice, pt crearea de diviziuni ```{r} seq(1, 3, length.out = 10) #vector format din 10 nr echidistante intre 1 si 3 seq(1, 3, 0.6) # cu ce pas merg intre 1 si 3 seq(1, 10, 1) 1:25 # stie implicit ca pasul e 1 25:1 #vom folosi notatia asta ca sa extragem elemente dintr-un vector seq(25, 1, -1) ``` ### Operatii cu vectori ```{r} a <- 1:10 b <- 5 a + b a - b a * b a / b a ^ b a %/% b a %% b ``` ### operatii cu vectori ```{r} #vectori de aceeasi lungime a <- 1:5 b <- c(2, 2, 1, 3, 4) a + b a - b a * b a / b a ^ b a %/% b a %% b ``` ## Proprietatea de reciclare ```{r} #vectori de lungimi dif a <- 1:6 b <- c(2, 2, 1) # b e multiplu de b a + b # = 3 4 4 6 7 7 a + c(2, 2, 1, 2, 2, 1) # b s-a dublat a <- 1:5 #b nu mai e multiplu de a b <- c(2, 2, 1) a + b a + c(2, 2, 1, 2, 2) ``` Functiile elementare sunt functii vectoriale ```{r} x <- seq(0, 1, 0.1) sqrt(x) exp(x) log(x, base = 2) asin(x) ``` Functii folositoare: ```{r} x <- 1:10 min(x) max(x) sum(x) prod(x) mean(x) sd(x) round(x) ``` Functia `table()` si `unique()` ```{r} x <- c("M","M","F","F", "M") unique(x) #F M table(x) #2 3 ``` ###Indexare 'Prin `[]` ```{r} #indexare numerica x <- 1:10 x[3] x[c(2, 4, 7)] # extrag elem de pe poz 2, 4, 7 x[c(2, 2, 4, 4)] x[2:7] x[-2] x[-c(2, 5, 8)] y <- x[-5] ``` ```{r} # indexare logica x[x > 5] x > 5 x[(x >= 3) & (x <= 7)] ``` Operatori logici: `==`, `!=`, '|' sau '||' (sau) `&` sau `&&' ```{r} x <- 1:10 (x > 3) & (x < 7) (x > 3) && ( x < 7) ``` Functii de tip `all()`, `any()` ```{r} x <- 1:10 any (x > 8) #true all (x < 10) #false ``` ## MAtrice ```{r} m <- matrix(1:12, nrow = 3, ncol = 4) m mr <- matrix(1:12, nrow = 3, ncol = 4, byrow = TRUE) mr mr2 <- cbind(mr, 1:3) mr3 <- rbind(mr, 1:4) ``` ```{r} a1 <- 1:5 a2 <- 6:10 a3 <-11:15 cbind(a1, a2, a3) rbind(a1, a2, a3) ``` ```{r} diag(mr3) dim(mr3) t(mr3) colSums(mr3) rowSums(mr3) ``` ### Operatii ```{r} m <- matrix(1:12, nrow = 3, ncol = 4) m + 3 m * 3 ``` ```{r} m1 <- matrix(1:12, nrow = 3, ncol = 4) m2 <- matrix(12:1, nrow = 3, ncol = 4) m1 + m2 m1 - m2 m1 * m2 # operatorul %*% inmultirea matricelor m1 %*% t(m2) A <- m1 %*% t(m1) #inversa B <- matrix(c(1, 3, 2, 2, 2, 1, 3, 1, 3), ncol = 3) solve(B) det(B) sum(diag(B)) ``` ```{r} B <- matrix(c(1, 3, 2, 2, 2, 1, 3, 1, 3), ncol = 3) B B[2,3] B[2, ] B[ ,2] B[c(1,2), c(2,3)] B[B > 2] B[B[,1] < 3, 3] ```