Formattazione del testo con tag HTML
COLONNE.
- Se ad ESEMPIO, volessi che il RIEMPIMENTO AVVENGA PER RIGA devo procedere in questo modo: Posso scrivere o byrow=1 oppure byrow=TRUE.
- Nelle operazioni fatte finora ho fatto in modo che i miei dati fossero da 1 a 12, ovvero come il numero di elementi della matrice; ma cose succede se così non fosse. Se ad ESEMPIO, volessi costruire una matrice con 3 righe e 4 colonne che contiene tutti i numeri da 1 a 10, avrò questo: Ha ricominciato - si genera un WARNING MESSAGE infatti, R - Studio ha riempito fin dove poteva e dopo ha ricominciato. Se supero i 12 elementi si genererà la stessa matrice, perché non possono entrare più di 12 elementi.
- Quello che faccio adesso è nominare l'oggetto come "matrice1": <- matrice1 matrix(data=1:10, nrow=3, ncol=4) E nell' "Environment" si crea la matrice. Richiamando la matrice1 in "Console" appare questo:
- Adesso
Voglio andarmi a estrarre il numero 8 dalla matrice1. Per farlo utilizzo le parentesi quadre specificando prima la riga e dopo la colonna (in questo caso riga 2 e colonna 3):
oppure
• Se invece volessi estrarre la coppia di numeri 5 e 8, la riga rimane sempre la 2 ma devo combinare le colonne 2 e 3: oppure 14
Invece, per:
- estrarre una riga devo procedere in questo modo: → ho estratto la riga 2 indicata così: [2 , ]
- estrarre la colonna devo procedere in questo modo: → ho estratto la colonna 4 indicata così: [, 4 ]
DIMENSIONE MATRICE
• Per calcolare la dimensione di una matrice si usa la funzione DIMENSIONE: dim e non la funzione lenght.
ESEMPIO: trovare la dimensione della matrice1: 1
GENERALIZZANDO: se io adesso volessi però prendere l'ultima colonna di una generica matrice → devo fare in questo modo esempio: → Quindi, dico a R prenditi la dimensione di matrice1 e prenditi il secondo elemento di dim(matrice1), in questo caso 4
- (numero ultima colonna). Quindi [2] corrisponde all'ultima colonna in qualsiasi matrice.
TRASPOSTA DI UNA MATRICE
- La TRASPOSTA DI UNA MATRICE si ottiene con la FUNZIONE
t
. - Ad ESEMPIO, "matrice2" è un oggetto che si ottiene facendo la trasposta di "matrice1":
PRODOTTO TRA MATRICI
- Posso eseguire l'operazione di PRODOTTO TRA MATRICI perché la matrice1 è di dimensioni 3x4 e matrice2 è di dimensioni 4x3 (sono conformi). Per farla dobbiamo scrivere in questo modo:
- il prodotto di una 3x4 (matrice1) per una 4x3 (matrice2) genera una matrice 3x3
- il prodotto di una 4x3 (matrice2) per una 3x4 (matrice1) genera una matrice 4x4
- Supponiamo che l'oggetto "matrice3" è dato dal prodotto tra "matrice1" e "matrice2":
<-- matrice3 = matrice1 %*% matrice2 -->
Uso questo comando perché nel caso avessimo una matrice con 150 colonne risulterebbe scomodo andare a guardare
l'ultima colonna da prendere, quindi generalizziamo il tutto, rendendo tale formula generale per tutte lesituazioni.
15UNIRE MATRICI
- Un modo per UNIRE MATRICI è quello di utilizzare la FUNZIONE cbind (unire colonne) o rbind (unire righe). Questa funzione è una estensione del combine.
- UNIRE COLONNE: unendo matrice1 e matrice3 sotto il nome di "matrice4" otteniamo questo: → → è come se avessi fato questo
- UNIRE RIGHE: unendo matrice2 e matrice3 sotto il nome di "matrice5" otteniamo questo: → → è come se avessi fato questo
LEZIONE 3: 21/03/2022
CREARE DEI VETTORI A PARTIRE DALLA GENERAZIONE DI NUMERI CASUALI.
- Dell'argomento "GENERAZIONE DI NUMERI CASUALI" verrà detto solo lo stretto e indispensabile. Questo ci servirà quando si affronterà la CLUSTER ANALYSIS.
- Creiamo quindi una matrice dei dati usando la funzione cnorm o cbind analizzando così
I suoi LIMITI, o meglio le sue CARATTERISTICHE.- Iniziamo con il generare un vettore "v1" estraendo i numeri in modo casuale da una DENSITÀ→NORMALE e per farlo utilizziamo il COMANDO rnorm con questo comando si creano dei numeri, immaginando che questi numeri siano stati estratti da una urna la cui composizione è governata→2da una LEGGE NORMALE o LEGGE GAUSSIANA cioè i numeri SARANNO IN GRAN PARTE VICINI AL VALORE MEDIO e soltanto IN PROPORZIONE MINORITARIA CI SARANNO NUMERI CHE SI DISCOSTERANNO TANTO DALLA MEDIA ARITMETICA. Immaginiamo quindi che v1 abbia una lunghezza 80, con media -5 e varianza 1:<–> v1 rnorm(80, mean= –5, 1) Numeri che seguono una legge gaussiana centrata su -5 Eseguendo questo comando nella "Console" si creerà nell' "Environment" un vettore con lunghezza 80 con all'interno dei numeri tipicamente negativi, perché la maggior parte sono vicini al valore della media.
che è -5. Successivamente creiamo un vettore "v2" estraendo i numeri in modo casuale da una LEGGE UNIFORME e per farlo utilizziamo il comando runif. La LEGGE NORMALE è governata da 2 parametri: la MEDIA e la VARIANZA. La LEGGE UNIFORME è governata da 2 parametri: il MIN e il MAX. Immaginiamo quindi che v2 abbia una lunghezza 80, con min = -2 e max = 2:<--> v2 runif(80, -2, 2)
Dire che un numero è generato da una densità uniforme tra -2 e 2 vuol dire che tutti i valori tra -2 e 2 hanno la STESSA PROBABILITÀ DI ESSERE ESTRATTI.
Inoltre, creiamo un vettore "v3" estraendo i numeri in modo casuale da una DENSITÀ DI TIPO BINOMIALE e per farlo utilizziamo il comando rbinom.
<--> v3 runif(80, 3, 0.2) [non ci dilunghiamo sulla spiegazione di questi valori inseriti].
Infine, creiamo un vettore "v4" estraendo, anche in questo caso, i numeri in modo casuale da una DENSITÀ
NORMALE.Immaginiamo quindi che v4 abbia una lunghezza 80, media = 0 e varianza 1, quindi basta scrivere solo: <–> v4 rnorm(80)
Ecco che nell’”Environment” troviamo i 4 vettori:
- Adesso per ricordarci qual è la regola seguita dal comando cbind (ma anche rbind) andiamo a costruire un altro vettore che contiene invece al suo interno delle STRINGHE lo chiameremo “v0”.
Questo vettore voglio che sia fatto con questa sequenza:
- “giallo” “rosso” “blu” bianco” ripetuta 18 volte * 18 = 72 (4 quindi per arrivare a 80 mancano 8 valori quindi: ↓)
- e che gli ultimi 8 valori siano rappresentati dalla stringa “verde” che verrà quindi ripetuta 8 volte.
Per costruirlo SCOMPONGO IL PROBLEMA:
- per costruire la prima sequenza utilizzo la funzione combine e la FUNZIONE rep per replicarlo:
- per costruire la seconda sequenza utilizzo sempre la FUNZIONE rep:
Fatto questo metto tutto
insieme i vettori v0, v1, v2, v3, v4 possiamo utilizzare la funzione cbind: ```htmlQuindi adesso possiamo creare il vettore "v0" formato da STRINGHE:
<--> v0 c(rep(c("Giallo", "Rosso", "Blu", "Bianco") , 18), rep("Verde",8))
Questa funzione permette di replicare qualcosa un numero di volte indicato. Ad ESEMPIO:
> rep (2, 5) replica il valore 2 cinque volte.
Adesso creiamo una "matrice1" utilizzando la funzione cbind unendo i vettori v0, v1, v2, v3, v4:
Però succede che le colonne sono state attaccate ma IL PROBLEMA È CHE SONO TUTE STRINGHE. Quindi NON SI PUÒ CALCOLARE LA MEDIA ARITMETICA, ad esempio, del vettore v2 (3° colonna della matrice):
Un modo per RISOLVERE QUESTO PROBLEMA è grazie alla funzione as.numeric:
→METTERE INSIEME VETTORI DI NATURA DIVERSA MANTENENDO LA NATURA DI OGNUNO
Questo però non è un modo veloce quindi per mettere insieme
```vettori (in questo caso colonne) che hanno nature diverse, mantenendo però la natura dei vettori si hanno 2 possibilità: FUNZIONE data.frame e FUNZIONE set.seed. • ESEMPIO: - Costruiamo una "matrice2" con la funzione data.frame: Notiamo come la natura dei vettori è rimasta la stessa; quindi, se io volessi calcolarmi la media di v2 non otterrei più un messaggio di warning: 18 Notiamo che la matrice2 l'"Environment" è diversa rispetto alla matrice1; infatti, se si clicca sul simbolo della freccette compaiono i vari vettori preceduti dal $. Il simbolo $ lo abbiamo già incontrato quando si è parlato della lista e abbiamo detto che serve per richiamare degli oggetti all'interno della lista, in questo caso vale lo stesso ma all'interno della matrice. Infatti, se io volessi andare a calcolare la media aritmetica di v2 (ovvero della terza colonna) posso farlo in un modo più comodo, ovvero andando aselezionare i vettori (colonne) attraverso il $:INDICIZZARE LA SEQUENZA DEI NUMERI CASUALI.
• Se osserviamo la matrice2 e la confrontassimo con quella dei nostri colleghi noteremo che sono tutte→diverse tra di loro, come lo sarà anche la media aritmetica di v3 Questo succede perché nella→generazione dei numeri casuali il software crea numeri casuali in sequenze sempre diverse però ioposso INDICIZZARE LA SEQUENZA per ottenere così la stessa sequenza di numeri casuali, attraverso laFUNZIONE set.seed.
• ESEMPIO: bisogna scegliere all’interno della funzione set.seed un numero che si vuole uguale per tutti,come ad esempio 9876. In tal modo se generiamo nuovamente il vettore “v1” otteniamo la stessasequenza di numeri casuali:
Però se adesso generiamo un vettore “v1.bis” con le stesse caratteristiche, otterrò una sequenzadiversa: 19
Però per ottenere la stessa sequenza di “v1” devo
VO. Ecco il testo formattato con i tag HTML:specificare nuovamente il set.seed (9876) e poi genero il “v1.bis”:
ELIMINARE ELEMENTI DAL WORKSPACE (ENVIRONMENT)
Per ELIMINARE DEGLI ELEMENTI DAL WORKSPACE è possibile grazie al COMANDO REMOVE: rm.
Supponiamo ad ESEMPIO di voler rimuovere i vettori v0, v1, v2, v3, v4:
> rm (v0, v1, v2, v3, v4)
RAPPRESENTAZIONE GRAFICA DELLE VARIABILI
La RAPPRESENTAZIONE GRAFICA la utilizzeremo molto nel modello di regressione lineare, ma in generale in statistica è importante fare un’analisi esplorativa della mia base dati (all’inizio di ogni ragionamento) e una parte integrande di tale analisi è proprio la costruzione dei grafici appropriati.
Esistono GRAFICI CHE SI ADATTANO A VARIABILI DI TIPO QUALITATIVO e GRAFICI CHE SI ADATTANO A VARIABILI DI TIPO QUANTITATIVO.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Schema comandi programmazione R
-
Lista completa comandi di R Studio
-
Lista comandi programma R
-
Comandi R studio