1.2_intro

Argomenti

  • Oggetti
    • tipologie di oggetti
    • creare/nominare un oggetto
    • tipologie di dato
  • Operatori
    • matematici
    • relazionali
    • logici

Oggetti

Tutto quello che possiamo creare in R viene definito oggetto (e.g., numeri, vettori, matrici, funzioni).

numero = 4; numero
[1] 4
vettore = c(1,2,3,4); vettore
[1] 1 2 3 4
matrice = matrix(nrow = 2, ncol = 2, data = vettore); matrice
     [,1] [,2]
[1,]    1    3
[2,]    2    4

Funzioni

Tutto quello che facciamo in R è chiamare funzioni su oggetti.

Le funzioni ci permettono di creare e modificare oggetti.


matrice[1,2] = vettore[1]
matrice
     [,1] [,2]
[1,]    1    1
[2,]    2    4
meanM = mean(x = matrice)
meanM
[1] 2

Creare/nominare oggetti

Gli oggetti si possono creare e tramite il comando <- oppure =


x1 = 3 # nome = oggetto
x1
[1] 3
x2 <- 3 # nome <- oggetto
x2 
[1] 3
x1 == x2 # i due oggetti sono identici?
[1] TRUE


Voi potete scegliere il comando che preferite, l’importante è essere consistenti.

Regole sulla denominazione di oggetti

  • Deve iniziare con una lettera e può contenere lettere, numeri, underscore ( _ ), o punti (.).
  • Potrebbe anche iniziare con un punto (.) ma in tal caso non può essere seguito da un numero.
.3 = 3 
Error in 0.3 = 3: invalid (do_set) left-hand side to assignment
.x = 3
  • Non deve contenere caratteri speciali come #, &, $, ?, etc.

  • Non deve essere una parola riservata ovvero quelle parole che sono utilizzate da R con un significato speciale (?reserved).

function = 3  
Error in parse(text = input): <text>:1:10: unexpected '='
1: function =
             ^
TRUE = 3
Error in TRUE = 3: invalid (do_set) left-hand side to assignment
if = 3
Error in parse(text = input): <text>:1:4: unexpected '='
1: if =
       ^

Convenzioni

Ci sono alcuni nomi che non sono proibiti ma sono sconsigliati

T
[1] TRUE
TRUE
[1] TRUE
T == TRUE
[1] TRUE
T = 1; T
[1] 1
T == TRUE
[1] TRUE
sum(2,3)
[1] 5
sum = 4; sum
[1] 4

L’uso di “.” nei nomi degli oggetti (ad esempio, “my.data”) va bene in R ma non è consentito in Python, dove “.” fa parte della sintassi del linguaggio.

Tra i diversi linguaggi, le convenzioni di denominazione per i nomi di variabili più lunghi e composti da più parole privilegiano snake_case (ad esempio, “my_data”) o camelCase (ad esempio, “myData”), e abbreviazioni dove appropriato (ad esempio, “unipdData” meglio di “university_of_padova_dataset”).

R è case-sensitive


Nome = "Margherita"
nome = "margherita"

Nome
[1] "Margherita"
nome
[1] "margherita"
Nome == nome
[1] FALSE

Dove vengono salvati gli oggetti?

Di default gli oggetti sono creati nel global environment accessibile con ls() o visibile in R Studio con anche alcune informazioni aggiuntive:

Eliminare oggetti

Possiamo eliminare un oggetto presente nel nostro enviroment attraverso il comando rm("nomeoggetto").

E’ possibile anche pulire completamente/svuotare il nostro enrivoment attraverso il comando rm(list = ls()).

Tipologie di dato

  • character: Stringhe di caratteri i cui valori alfanumerici vengono delimitati dalle doppie vigolette “Hello world!” o virgolette singole ‘Hello world!’
  • numeri:
    • double: Valori reali con o senza cifre decimali ad esempio 27 o 93.46
    • integer: Valori interi definiti apponendo la lettera L al numero desiderato, ad esempio 58L

Operatori Matematici

Funzione Cosa fa? Esempio Risultato
+ addizione 5.4 + 6.1 11.5
- sottrazione 9 - 4.3 4.7
* moltiplicazione 7 * 1.4 9.8
/ divisione 9/3 3
%% resto 9%%2 1
^ potenza 15 ^ 2 225
Funzione Cosa fa? Esempio Risultato
abs valore assoluto abs(-8) 8
sqrt radice quadrata sqrt(225) 15
exp funzione esponenziale exp(0) 1
log logaritmo, base \(e\) log(1) 0
round arrotondamento, intero round(1.738) 2
round arrotondamento round(1.738, 2) 1.74

Operazioni Matematiche

L’ordine delle operazioni in R segue le regole della matematica, a meno che non si specifichi un ordine diverso usando le parentesi ( ).

Esempi

# Senza parentesi
1 + 2 * 3
[1] 7
# Con le parentesi
(1 + 2) * 3
[1] 9

Operatori Relazionali

In R è possibile valutare se una data relazione è vera o falsa. R valuterà le proposizioni e ci restituirà il valore TRUE se la proposizione è vera oppure FALSE se la proposizione è falsa.

Funzione Nome Esempio Risulato
== uguale 30 == 30 TRUE
!= diverso 30 != 30 FALSE
>/>= maggiore/o uguale

30 > 10

30 >= 10

TRUE

TRUE

</<= minore/o uguale

30 < 10

10 <= 10

FALSE

TRUE

%in% inclusione 10%in%c(1,2,10) TRUE

Non vale solo per i numeri!


Nome = "Margherita"

nome = "margherita"

Nome == nome
[1] FALSE


PS. Ricordatevi che = è diverso da ==

Operatori Logici

In R è possibile congiungere più relazioni per valutare una desiderata proposizione.

x = 30 #Assegnamo a x il valore 30.
Funzione Nome Esempio Risulato
& Congiunzione x>25 & x<60 TRUE
| Disgiunzione Inclusiva x>25 | x>60 TRUE
! Negazione !(x<18) TRUE

TRUE equivale a 1 e FALSE a 0

TRUE == 1 
[1] TRUE
TRUE == 2
[1] FALSE
FALSE == 0
[1] TRUE
FALSE == 1
[1] FALSE
esempio = c(rep("casa",4),rep("bottega",2))
sum(esempio == "casa"); sum(esempio == "bottega")
[1] 4
[1] 2

Ordine Valutazione Relazioni

Nel valutare le veridicità delle proposizioni R esegue le operazioni nel seguente ordine:

  1. Operatori matematici (e.g., ^, *, /, +, -, etc.)
  2. Operatori relazionali (e.g., <, >, <=, >=, ==, !=)
  3. Operatori logici (e.g., !, &, |)

In caso di dubbi riguardanti l’ordine di esecuzione delle operazioni, la cosa migliore è utilizzare le parentesi tonde () per disambiguare ogni possibile fraintendimento.

Facciamo un po’ di pratica!


Aprite e tenete aperto questo link: https://etherpad.wikimedia.org/p/arca-corsoR