---
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]
```