lunedì 26 novembre 2018

Inserimento manuale dei dati [2]

Sapere inserire a mano i dati in R può essere utilePer questo ho predisposto due esempi che illustrano la sintassi da utilizzare per inserire direttamente da tastiera array (vettori) e combinarli in matrici o tabelle [1] assegnando i nomi alle variabili e ai casi.

Questo script genera una matrice di due righe per due colonne. Si tratta della struttura dati tipica necessaria per effettuare il test chi-quadrato, per effettuare il test di Fisher, il test di McNemar o impiegare il teorema di Bayes [2].

Copiate lo script, incollatelo nella Console di R e premete ↵ Invio.

# DA QUATTRO VALORI GENERA UNA MATRICE 2x2
#
cells <- c(1, 26, 24, 68) # genera l'array cells con i valori numerici contenuti nelle celle
cells # mostra l'array cells
#
rnames <- c("Riga 1", "Riga 2") # genera l'array rnames con i nomi delle righe
rnames # mostra l'array rnames
#
cnames <- c("Colonna 1", "Colonna 2") # genera l'array cnames con i nomi delle colonne
cnames # mostra l'array cnames
#
mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=TRUE, dimnames=list(rnames, cnames)) # costruisce la matrice a partire dagli array cells, rnames, cnames
mymatrix # mostra la matrice 
#

Dopo avere eseguito lo script utilizzate i tasti Pag-su e Pag-giù per scorrere nella finestra della Console di R quanto è accaduto.

Mediante la funzione c() [3] sono generati gli array che mediante l'operatore di assegnamento <- vengono denominati cells, rnames, cnames e contengono rispettivamente i dati (cells), i nomi delle righe (rnames) e i nomi delle colonne (cnames).

Mediante la funzione matrix() [4] gli array sono combinati nella matrice mymatrix di 2 righe (nrow=2) per due colonne (ncol=2) inserendo i valori per riga (byrow=TRUE) e quindi da sinistra a destra e dall'alto in basso ottenendo quindi la matrice desiderata alla quale con l'ultimo argomento (dimnames=list(rnames, cnames)) sono assegnati i nomi alle righe e alle colonne.

Questo è il contenuto dell'oggetto mymatrix definitivo riportato da R al termine dell'elaborazione dopo l'ultimo comando mymatrix:

> mymatrix
       Colonna 1 Colonna 2
Riga 1         1        26
Riga 2        24        68

Quest'altro script genera una tabella (dataframe) che contiene valori numerici, alfanumerici e logici, e assegna i nomi alle variabili (colonne).

Copiatelo per intero quindi incollatelo nella Console di R e premete ↵ Invio:

# GENERA UNA TABELLA (DATAFRAME) DI 3 COLONNE PER 4 RIGHE
#
d <- c(9901, 9902, 9903, 9904) # genera un array con quattro valori numerici
d # mostra l'array d
#
e <- c("rosso", "bianco", "blu", NA) # genera un array con quattro valori alfanumerici, NA=Not Available
e # mostra l'array e
f <- c(TRUE,TRUE,TRUE,FALSE) # genera un array con quattro valori logici
f # mostra l'array f
#
mytable <- data.frame(d, e, f) # genera una tabella (dataframe) a partire dagli array d, e, f
mytable # mostra il contenuto della tabella
#
names(mytable) <- c("Codice", "Colore", "Dato valido") # assegna i nomi alle variabili/colonne
row.names(mytable) <- c("A", "B", "C", "D") # sostituisce gli identificativi numerici di riga di R con nuovi descrittori univoci dei casi/righe
mytable # mostra il contenuto della tabella 
#

Dopo avere eseguito lo script utilizzate casi i tasti Pag-su e Pag-giù per scorrere nella finestra della Console di R quanto è accaduto.

Qui di nuovo con la funzione c() sono generati gli array che mediante l'operatore di assegnamento <- vengono denominati d, e, f e che subito dopo sono combinati mediante la funzione data.frame() nella tabella mytable.

Successivamente con la funzione names() sono generati i nomi che vengono assegnati alle colonne/variabili della tabella e con la funzione row.names() sono sostituiti gli identificativi numerici assegnati di default ai casi/righe.

Questo è il contenuto dell'oggetto definitivo riportato al termine dell'elaborazione dopo l'ultimo comando mytable:

> mytable # mostra il contenuto della tabella 
  Codice Colore Dato valido
A   9901  rosso        TRUE
B   9902 bianco        TRUE
C   9903    blu        TRUE
D   9904   <NA>       FALSE

Anche se il significato dei vari passaggi è stato illustrato con i commenti inclusi negli script, si ricordano alcune regole generali:
→ i nomi assegnati agli oggetti che vengono generati (cells, rnames, d, fmytable e quant'altro) possono essere stabiliti liberamente;
→ potete stabilire liberamente anche i nomi da assegnare alle colonne/variabili e ai casi/righe;
per vedere il contenuto di un oggetto è sufficiente digitare nella Console di R il nome dell'oggetto;
→ una tabella per definizione può contenere sia valori numerici, sia valori alfanumerici (stringhe di testo), sia valori logici;
→ se un dato non è disponibile, al posto del dato va inserita la sigla NA (Not Available).

Se siete interessati al tema potrebbero esservi utili anche gli esempi riportati in:

----------

[1] Parliamo di array o vettore nel caso di dati numerici monodimensionali, disposti su una sola riga, 

8
6
11
7

di matrice nel caso di dati numerici disposti su più righe e più colonne

8
9
15
14
6
7
18
12
11
8
17
13
7
4
19
17

e di tabella nei casi in cui il contenuto, disposto su più righe e più colonne, è rappresentato oltre che da dati numerici, anche da testo e/o operatori logici

M
7
9
VERO
F
3
12
VERO
F
5
10
FALSO

[2] Vedere le rispettive voci alla pagina Indice.

[3] Digitate help(c) nella Console di R per la documentazione della funzione c().

[4] Digitate help(matrix) nella Console di R per la documentazione della funzione matrix.

Nessun commento:

Posta un commento