################################################ # CALCOLO DELLE PROBABILITà La probabilità di un determinato fenomeno, detto EVENTO, è la possibilità o meno che esso si verifichi. P (MAIUSCOLO) indica la probabilità ESEMPIO: lancio di moneta - evento casuale: può uscire una delle 2 facce, P=1/2 - evento impossibile: uscirà una faccia diversa, P=0 - evento certo: uscira una delle 2 facce, P=1 - evento uscirà testa è dato dal caso favorevole (testa) da cui P = 1/2 ESEMPIO: dado a 6 facce - evento casuale: può uscire una delle 6 facce, P=1/6 - evento impossibile: uscirà il numero 7, P=0 - evento certo: uscira una delle 6 facce, P=1 - evento uscirà un numero pari è dato dai 3 casi favorevoli (le facce 2,4,6) da cui P = 1/3+1/3+1/3 = 3/6 = 1/2 ################################################ # VETTORI (STRUTTURA ORDINATA DI DATI) potete pensare ad una sequenza di celle numerate, ognuna delle quali contiene un elemento. Gli elementi possono essere numeri o stringhe ma devono essere tutti dello stesso tipo. Ecco qualche esempio: u = |1|2|3|5|7|9| elementi 1 2 3 4 5 6 posizione x = |1|2|3| y = |3|2|1| x è diverso da y r = |A|A|B| s = |A|B| r è diverso da s ################################################ # INSIEME (COLLEZIONE NON ORDINATA DI ELEMENTI) A = {1,2,3} B = {2,1,3} A = B i due insiemi sono uguali, contengono gli stessi elementi In un diagramma di Venn è ininfluente l’ordine con cui sono disposti gli elementi dell’insieme. La definizione formale di uguaglianza di insiemi: A=B se ogni elemento di A appartiene a B e, viceversa, ogni elemento di B appartiene ad A. ################################################ # L'ORDINAMENTO è FONDAMENTALE, IN INFORMATICA SI UTILIZZANO I VETTORI E NON GLI INSIEMI ################################################ # CREARE VETTORI IN R (x=(1:10)) #crea un vettore di 10 elementi e passo 1 (default). #[1] 1 2 3 4 5 6 7 8 9 10 #otherwise (x=c(1,2,3,4,5,6,7,8,9,10)) #concateno gli elementi mettendoli manualmente #otherwise (x=seq(from=1, to=10, by=1)) #crea una sequenza #i parametri from,to,by possono essere omessi (x=seq(1, 10, 1)) #è identica all'espressione precedente #Le modalità viste sono identiche #se cerco l'elemento di posizione 5, in tutti i casi ottengo lo stesso risultato x[2] #[1] 2 ###NOTA: nel caso "(x=seq(from=1, to=10, by=1))" se non metto "seq" ma "c" (x=c(from=1, to=10, by=1)) #ottengo una tabella con label from to by 1 10 1 x[2] to 10 ################################################ # I VETTORI POSSONO CONTENERE NUMERI O STRINGHE (y=c("Marco","Andrea","Fabio")) #[1] "Marco" "Andrea" "Fabio" y[2] #[1] "Andrea" #se voglio rappresentare le stringhe senza virgolette uso la funzione noquote() (y=c("Marco","Andrea","Fabio") [1] "Marco" "Andrea" "Fabio" noquote(y) [1] Marco Andrea Fabio ################################################ # Test uguaglianza segno di uguaglianza == (valutazione elemento per elemento) x=c(1,2,3); y=c(3,1,3) x==y #[1] FALSE FALSE TRUE funzione identical() (valutazione “in blocco”) x=c(1,2,3); y=c(3,1,3) identical(x,y) [1] FALSE ################################################ # ESTRARRE ELEMENTI DI UN VETTORE (x=(1:10)) #[1] 1 2 3 4 5 6 7 8 9 10 x[2] #estrae l'elemento di posto 2 #[1] 2 x[2:5] #estrae gli elementi di posto [i:j] cioè dal 2 al 5 #[1] 2 3 4 5 x[x==2] #estrae gli elementi uguali a 2 #[1] 2 x[x>3] #estrae gli elementi maggiori di 3 #[1] 4 5 6 7 8 9 10 length(x[x>3]) #conta il numero di elementi maggiori di 3. Quanti sono? #[1] 7 # CONDIZIONE AND (&) x[x>=4 & x<=8] #[1] 4 5 6 7 8 # CONDIZIONE OR (|) x[x<=4 | x>=8] #[1] 1 2 3 4 8 9 10 ################################################ # MODIFICARE VETTORI IN R (x=(1:10)) #[1] 1 2 3 4 5 6 7 8 9 10 length(x) #lunghezza del vettore originale #[1] 10 x[1]=0; x #Cambiare il valore di un dato elemento #[1] 0 2 3 4 5 6 7 8 9 10 (x=x[-2]);x #Eliminare un elemento dal vettore #[1] 0 3 4 5 6 7 8 9 10 length(x) #lunghezza del vettore a cui è stato eliminato un elemento #[1] 9 #AGGIUNGERE ELEMENTI A UN VETTORE (x1=x[1]) (x2=x[2:9]) #divido il vettore x modificato in due parti chiamate "x1" e "x2" (y=c(x1,1,2,x2)) #creo un nuovo vettore formato dai 2 vettori creati e dagli elementi "1","2" #[1] 0 1 2 3 4 5 6 7 8 9 10 ################################################ # SOMMA DEGLI ELEMENTI DI UN VETTORE (x=(1:10)) #[1] 1 2 3 4 5 6 7 8 9 10 sum(x) #x[1]+x[2]+x[3]+x[4]+x[5]+x[6]+x[7]+x[8]+x[9]+x[10] #somma uno ad uno gli elementi del vettore #[1] 55 prod[x] #x[1]*x[2]*x[3]*x[4]*x[5]*x[6]*x[7]*x[8]*x[9]*x[10] #moltiplica fra loro gli elementi del vettore [1] 3628800 # VEDERE IL PRODOTTO SCALARE ################################################ # MEDIA E VARIANZA DEGLI ELEMENTI DI UN VETTORE (x=(1:10)) #[1] 1 2 3 4 5 6 7 8 9 10 mean(x) #media fra tutti gli elementi del vettore "x" (media=sum(x)/length(x)) #[1] 5.5 var(x) #Var in R è la varianza campionaria (n-1) #[1] 9.166667 (varianza_camp=sum((x- media)^2)/(length(x)- 1)) #la Varianza della popolazione è calcolata su tutto (n) #[1] 9.166667 (varianza_pop=sum((x- media)^2)/(length(x))) #la Varianza della popolazione è calcolata su tutto (n) #[1] 8.25