Breve introduzione al linguaggio R L'ambiente R Studio Davide Massidda www.insular.it Università di Cagliari, a.a. 2013/2014 R è una calcolatrice! Inserire commenti L'utente invia un comando in input; dall'altra parte, un interprete legge R accetta come input anche dei commenti: tutto ciò che segue il simbolo l'istruzione, elabora la risposta e fornisce un output. > 2+2 [1] 4 > 2*2 [1] 4 > 3^5 [1] 243 > 7+(3-4) [1] 6 # non viene interpretato come comando. > Voglio creare un bel grafico con R Errore: unexpected symbol in Voglio creare > # Come creare un bel grafico con R? > # ...aspetta e vedrai :-) > 2+2 # calcola due più due [1] 4 L'operazione di assegnazione Il comando <- Gli script permette di assegnare un valore a un oggetto: Uno script è un le testuale che contiene le istruzioni da eseguire nel terminale. Perché venga riconosciuto come script R, un le deve essere > x <- 2 > x [1] 2 salvato con estensione .R . Gli script possono essere anche creati e aperti con editor di testi esterni (es. Notepad++). Un oggetto può contenere non solo numeri ma anche stringhe di caratteri: > corso <- psicometria > corso [1] psicometria oppure valori logici: > x1 <- TRUE > x1 [1] TRUE > x2 <- FALSE > x2 [1] FALSE > x1 + x2 [1] 1 Gestire uno script Operazioni con gli oggetti > a <- 2 ; b <- 7 > somma <- a+b > somma [1] 9 Nota: il ; consente di inserire più comandi su una stessa riga. > x <- 3 > somma^(x-1) [1] 81 Per aprire in R Studio uno script precedentemente creato: File > Open File... > x <- sqrt(2) > x [1] 1.414214 > x <- log(2) > x [1] 0.6931472 > x <- abs(-2) > x [1] 2 > x <- exp(2) > x [1] 7.389056 Le funzioni Le funzioni Funzione logaritmo Funzione logaritmo log(x base , ) Gli argomenti di una funzione vanno sempre racchiusi tra tonde log(x base = exp(1) , parentesi . Alcuni argomenti sono obbligatori, altri opzionali. > log(x=2) [1] 0.6931472 Le funzioni > log(x=2, base=10) [1] 0.30103 > log(2, 10) [1] 0.30103 > log(base=10, x=2) [1] 0.30103 > log(10, 2) [1] 3.321928 Tradurre in linguaggio R le seguenti espressioni Es.1 (risultato: 0.6) Funzione logaritmo , I nomi degli argomenti possono anche essere omessi... ...attenzione però all'ordine con cui vengono inseriti! > log(base=10) Errore in log(base = 10) : supplied argument name 'base' does not match 'x' log(x base ) = exp(1) ) = exp(1) > 2*(4/5)-1 2 Un oggetto può essere utilizzato per passare un argomento a una > a > b > x > x [1] funzione. Es.2 (risultato: 3) <- 2 <- 7+3 <- log(a, base=b) > 3*(7-(5+1)) 4 1 5 3 [7 (5 + 1)] Es.3 (risultato: 1.975332) 0.30103 > (log(3/2)+1)^2 3 2 ln 2 +1 Tradurre in linguaggio R le seguenti espressioni Es.1 (risultato: 0.6) ...e se dovesse servire aiuto? Quando abbiamo dicoltà con l'uso di un comando o siamo alla ricerca di una funzione per eettuare una specica operazione, possiamo consultare > 2*(4/5)-1 la documentazione. 2 4 > ?log 1 5 > ??log Es.2 (risultato: 3) > help.start() > 3*(7-(5+1)) 3 [7 (5 + 1)] Es.3 (risultato: 1.975332) > (log(3/2)+1)^2 3 2 ln 2 +1 I vettori Operazioni con i vettori Un oggetto può contenere non solo un singolo valore, ma anche una concatenzazione di valori. La funzione c() serve a concatenare tra loro gli elementi che vengono forniti come argomento (che devono essere tutti dello stesso tipo). > y <- c(25,-22,32,0,12) > y [1] 25 -22 32 0 12 > corsi <- c(psicometria,inglese,psicologia generale) > corsi [1] psicometria inglese psicologia generale > length(y) > length(corsi) [1] 5 [1] 3 Nota bene : con il generico termine vettore, in R, non si fa riferimento alla nozione di vettore usuale nell'algebra lineare, ma semplicemente a un insieme di valori consecutivi. Qualche esempio: > y <- c(25,-22,32,0,12) > y + 100 [1] 125 78 132 100 112 > y ^ 2 [1] 625 484 1024 > sum(y) [1] 47 > mean(y) [1] 9.4 > sd(y) [1] 21.41962 0 144 Costruire successioni numeriche Costruire vettori contenenti repliche Generazione di sequenze Replicazione di valori seq(from to by) , rep(x times , , from to by x times length.out each : limite inferiore. > seq(-2,2,0.5) [1] -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 3 4 5 6 7 8 9 10 Estrazione di valori Utilizzando le parentesi quadre , è possibile accedere ai singoli dati con- > x <- c(2, 3, 1, 6, 9.7) > x[4] [1] 6 Attenzione a non confondere l'indice, ovvero la ( ) [ ] valore = 1 : lunghezza del vettore in output. > rep(2,5) [1] 2 2 2 2 2 > rep(pippo,3) [1] pippo pippo pippo > rep(c(1,5,10),times=2) [1] 1 5 10 1 5 10 > rep(c(1,5,10),each=2) [1] 1 1 5 5 10 10 Estrazione di valori tenuti in un vettore. si trova (4) con il each ) : quante volte replicare ogni singolo valore del vettore. > seq(0,20,2) [1] 0 2 4 6 8 10 12 14 16 18 20 2 = NA, : quante volte replicare il valore/vettore. : passo. 1 length.out : valore o vettore da replicare. : limite superiore. > 0:10 [1] 0 = 1, posizione in cui il valore localizzato in quella posizione (6). Le parentesi tonde racchiudono gli argomenti di una funzione. Le parentesi quadre si utilizzano per accedere agli elementi contenuti > x <- c(2, 3, 1, 6, 9.7) > pos <- c(2,4) > x[pos] [1] 3 6 > x[length(x)] # valore in ultima posizione [1] 9.7 > x[length(x)-1] # valore in penultima posizione [1] 6 in un vettore. > pos <- c(length(x)-1,2) > x[pos] [1] 6 3 Sostituzione / eliminazione di valori Esercitazione 1 > x <- c(2, 3, 1, 6, 9.7) > x[2] <- 99 # sostituzione del 2 valore > x [1] 2.0 99.0 1.0 6.0 9.7 > x <- x[-2] # eliminazione del 2 valore > x [1] 2.0 1.0 6.0 9.7 > y <- x[-c(1,4)] # eliminazione del 1 e 4 valore > y [1] 1 6 > z <- c(pippo,pluto,topolino) > z <- z[-2] > z [1] pippo topolino Utilizzando anche il comando rep(), costruire un vettore x conte- nente i numeri: 43, 12, 76, 23, 12, 89, 12, 9, 9, 9, 9. x <- c(43, 12, 76, 23, 12, 89, 12, rep(9,4)) 2 Calcolare il logaritmo naturale del 5 valore di x. log(x[5]) y contenente y <- x[c(1,3,length(x))] 3 Creare un vettore 4 Sostituire il 3 valore di y[3] <- 99 5 Calcolare la media di mean(y) 6 y il 1 , il 3 e l'ultimo valore di col valore 99. y. Calcolare la deviazione standard dei primi cinque valori di sd(x[1:5]) rep(), costruire un vettore x conte- nente i numeri: 43, 12, 76, 23, 12, 89, 12, 9, 9, 9, 9. Esercitazione 1 Utilizzando anche il comando x. x. valore di x. 2 Calcolare il logaritmo naturale del 5 3 Creare un vettore 4 Sostituire il 3 5 Calcolare la media di 6 Calcolare la deviazione standard dei primi cinque valori di y contenente il 1 , il 3 valore di y e l'ultimo valore di col valore 99. y. x. x.
© Copyright 2024 Paperzz