1.
Creare un nuovo script
• Apri RStudio.
• Vai su File > New File > R Script.
2. Impostare la directory Corrente
setwd("C:/tmp")
3. Verificare la directory corrente
getwd()
4. Creare le variabili
• # Name: Inserisci il tuo nome
Name <- "Paolo"
• # Surname: Inserisci il tuo cognome
Surname <- "Bonolis"
• # Address: Inserisci il tuo indirizzo
Address <- "Via Roma, 10"
• # Age: Calcola la tua età come differenza tra il 2020 e il tuo anno di nascita
Age <- 2020 - 2000 # Sostituisci con il tuo anno di nascita
• # Gender: Inserisci il genere
Gender <- "M" # "M" per maschio, "F" per femmina
• # Student: Valore booleano (TRUE/FALSE)
Student <- TRUE
5. Visualizzare i valori delle variabili
CTRL+INVIO SELEZIONANDO TUTTE LE VARIABILI (Name, Surname, Address ,Age, Gender, Student)
6. Visualizzare la lista delle variabili create
ls()
7. Cancellare le variabili Name e Gender
rm(Name, Gender)
8. Visualizzare le variabili rimanenti
ls()
9. Visualizzare la cronologia dei comandi
history()
10. Salvare lo script
• Vai su File > Save As....
• Salva il file come esercizio_finale_1_Paolo_Bonolis.R nella directory C:/tmp.
11. Uscire salvando .RData e .Rhistory
q(save = "yes")
12. Verificare i file salvati
• Controlla nella directory C:/tmp che ci siano:
o Lo script .R.
o I file .RData e .Rhistory.
13. Riaprire R e lo script
• Apri di nuovo RStudio.
• Vai su File > Open File... e seleziona il file .R.
14. Aggiungere la variabile ID
# ID: Numero di matricola
ID <- 12345
15. Rieseguire tutto lo script
Seleziona tutto il codice e premi Ctrl + Enter
16. Uscire senza salvare
q(save=”no”)
1. Creare un nuovo script
Vai su File > New File > R Script.
2. Creare i vettori
Nel file di script o nella console, definisci i due vettori:
Voti_Studente_A <- c(18, 30, 24, 18, 23, 25)
Voti_Studente_B <- c(28, 30, 21, 18, 30, 20)
3. Assegnare i nomi agli elementi dei vettori
esame<-c(“esame 1,” “esame 2,” “esame 3,” “esame 4,” “esame 5,” “esame 6,”)
names(Voti_Studente_A)<-esame
names(Voti_Studente_B)<-esame
4. Verificare i nomi assegnati
Visualizza i due vettori per verificare che i nomi siano stati assegnati:
• Voti_Studente_A
• Voti_Studente_B
5. Calcoli per Voti_Studente_A
Calcola e assegna i valori richiesti:
Copia codice
• somma_A <- sum(Voti_Studente_A)
• media_A <- mean(Voti_Studente_A)
• mediana_A <- median(Voti_Studente_A)
• min_A <- min(Voti_Studente_A)
• max_A <- max(Voti_Studente_A)
# Visualizzazione (seleziono tutte le righe e CTRL+INVIO)
• somma_A
• media_A
• mediana_A
• min_A
• max_A
6. Calcoli per Voti_Studente_B
Calcola e assegna i valori richiesti:
• somma_B <- sum(Voti_Studente_B)
• media_B <- mean(Voti_Studente_B)
• mediana_B <- median(Voti_Studente_B)
• min_B <- min(Voti_Studente_B)
• max_B <- max(Voti_Studente_B)
# Visualizzazione (seleziono tutte le righe e CTRL+INVIO)
• somma_B
• media_B
• mediana_B
• min_B
• max_B
7. Creare il vettore Voti_A_B (differenze)
Calcola la differenza tra i due vettori:
Voti_A_B <- Voti_Studente_A - Voti_Studente_B
Voti_A_B
8. Selezionare il terzo elemento di Voti_A_B
Voti_A_B[3]
9. Selezionare il terzo e quinto elemento di Voti_A_B
Voti_A_B[c(3, 5)]
10. Selezionare dal terzo al sesto elemento di Voti_A_B
Voti_A_B[3:6]
11. Selezionare gli elementi negativi di Voti_A_B
Voti_A_B[Voti_A_B < 0]
12. Visualizzare la lista degli oggetti
Mostra gli oggetti creati nell'ambiente:
ls()
13. Cancellare i vettori Voti_Studente_A e Voti_Studente_B
rm(Voti_Studente_A, Voti_Studente_B)
14. Visualizzare la cronologia dei comandi
history()
15. Salvare lo script
Vai su File > Save As... e salva il file come esercizio_finale_2_lezione.R.
16. Uscire dalla sessione
Per uscire:
q(save = "yes")
1. Creare un nuovo script
Vai su File > New File > R Script.
2. Creare la matrice Voti_A_B
• Prima definisci i vettori degli studenti e poi crea la matrice.
Voti_Studente_A <- c(90, 70, 84, 55, 100, 99)
Voti_Studente_B <- c(88, 73, 45, 80, 98, 90)
Voti_Studente_A_B<-c(Voti_Studente_A, Voti_Studente_B)
• # Creazione della matrice
Voti_A_B <- matrix(c(Voti_Studente_A_B), byrow=FALSE, nrow = 6)
3. Visualizzare la matrice Voti_A_B
Mostra la matrice nella console:
CTRL+INVIO (Voti_A_B)
4. Verificare la dimensione della matrice
dim(Voti_A_B)
5. Creare la matrice Voti_A_B_def
Voti_A_B_def <- Voti_A_B / 100 * 30
Voti_A_B_def
6. Visualizzare la matrice Voti_A_B_def
Voti_A_B_def
7. Calcolare la media dei voti di ogni studente
Usa la funzione colMeans() per calcolare la media:
Copia codice
Media<-colSums(Voti_A_B_def)/6
8. Visualizzare la media calcolata
CTRL+INVIO(Media)
9. Aggiungere la media come nuova riga alla matrice Voti_A_B_def
Combina la matrice originale con la media:
Voti_A_B_tot <- rbind(Voti_A_B_def, Media)
Voti_A_B_tot
10. Visualizzare la matrice Voti_A_B_tot
Mostra la matrice aggiornata nella console:
CTRL+INVIO (Voti_A_B_tot)
11. Selezionare dalla matrice Voti_A_B_tot i voti dello studente A
Voti_A_B_tot[1:6,1]
12. Selezionare dalla matrice Voti_A_B_tot i voti dello studente B
Voti_A_B_tot[1:6,2]
13. Selezionare dalla matrice Voti_A_B_tot i voti del terzo esame per entrambi gli studenti
Voti_A_B_tot[3, ]
14. Selezionare dalla matrice Voti_A_B_tot i voti dal primo al quinto esame per lo studente B
Voti_A_B_tot[1:5,2]
15. Salvare lo script
Salva lo script con il nome esercizio_finale_3_lezione.R nella directory desiderata.
16. Uscire dalla sessione
Esci da RStudio salvando l'ambiente di lavoro, se richiesto:
q()
Punto 1 e 2 guarda [Link]
3. Creare il data frame impiegati
# Creazione del data frame
anno = c(2010, 2011, 2012),
num_impiegati = c(265, 277, 281),
num_impiegati_M = c(165, 200, 201),
num_impiegati_F = c(100, 77, 80)
impiegati <- [Link](anno,num_impiegati,num_impiegati_M,num_impiegati_F)
4. Visualizzare il data frame
Per visualizzare variabili guarda es precedenti
5. Visualizzare le prime osservazioni
head(impiegati)
6. Visualizzare le ultime osservazioni
tail(impiegati)
7. Visualizzare dimensioni, numero di colonne e righe
Usa i seguenti comandi:
# Dimensioni del data frame
dim(impiegati)
# Numero di righe
nrow(impiegati)
# Numero di colonne
ncol(impiegati)
8. Visualizzare la struttura del data frame
str(impiegati)
9. Aggiungere una nuova colonna (stipendi_totali)
stipendi_totali <- c(1000, 1300, 1250)
impiegati_def <- cbind(impiegati, stipendi_totali)
10. Visualizzare il nuovo data frame
impiegati_def
11. Visualizzare i nomi delle colonne
names(impiegati_def)
12: Modificare i nomi delle colonne del data frame "impiegati_def" (tradotti in inglese)
names(impiegati_def) <- c("year", "emp", "emp_M", "emp_F", "salary_tot")
13: Visualizzare i dati della colonna "num_impegiati" (ora chiamata "emp")
impiegati_def$emp
14: Visualizzare i dati della colonna "stipendi_totali" (ora chiamata "salary_tot")
impiegati_def$salary_tot
15: Aumentare i valori della colonna "stipendi_totali" di 10
impiegati_def$salary_tot <- impiegati_def$salary_tot + 10
16: Diminuire i valori della colonna "num_impegiati" (ora chiamata "emp") di 5
impiegati_def$emp <- impiegati_def$emp - 5
18: Calcolare la media, mediana, minimo e massimo del numero di impiegati
mean(impiegati_def$emp)
median(impiegati_def$emp)
min(impiegati_def$emp)
max(impiegati_def$emp)
19: Calcolare la media, mediana, minimo e massimo degli stipendi totali
mean(impiegati_def$salary_tot)
median(impiegati_def$salary_tot)
min(impiegati_def$salary_tot)
max(impiegati_def$salary_tot)
20: Selezionare solo le righe con "stipendi_totali" maggiori di 1250
subset(impiegati_def, salary_tot > 1250)
21: Selezionare solo le righe con "num_impegiati" (ora chiamato "emp") minori di 270
subset(impiegati_def, emp < 270)
22: Selezionare solo le righe con "num_impegiati_M" uguali a 200
subset(impiegati_def, emp_M == 200)
23: Visualizzare gli oggetti creati nello spazio di lavoro
ls()
# Punto 24: Visualizzare la cronologia dei comandi eseguiti
history()
1. Creare un nuovo script
Fai clic su File -> New File -> R Script in RStudio per creare un nuovo script)
2. Visualizzare gli oggetti del workspace
ls()
6-7. Creare il file [Link]
Vendite<-[Link](“c:/tmp/[Link]”, sep=”#”, stringsAsFactors=FALSE)
Vendite
str(Vendite)
8-9. Creare il file [Link]
Costi<-[Link](“c:/tmp/[Link]”, stringsAsFactors=FALSE)
Costi
Str(Costi)
10-11. Creare il file [Link]
profitti <- <-[Link](“c:/tmp/[Link]”, sep=”;”, stringsAsFactors=FALSE)
profitti
str(profitti)
12. Importare il file [Link]
vendite <- [Link]("c:/tmp/[Link]", sep = "#")
# 13. Unire vendite e costi in un data frame vendite_costi
vendite_costi <- cbind(vendite, costi)
vendite_costi
14. Unire vendite_costi con profitti creando vendite_costi_profitti
vendite_costi_profitti <- cbind(vendite_costi, profitti)
vendite_costi_profitti
15. Visualizzare dimensioni, numero di colonne e righe di vendite_costi_profitti
dim(vendite_costi_profitti)
ncol(vendite_costi_profitti)
nrow(vendite_costi_profitti)
16. Visualizzare i nomi delle colonne di vendite_costi_profitti
names(vendite_costi_profitti)
17. Mantenere solo alcune colonne
Keep<-c(1,2,4,6)
def <- vendite_costi_profitti[, keep]
def
18. Visualizzare il data frame def
str(def)
19. Modificare i nomi delle colonne di def in maiuscolo
Names(def)<-c(“ANNO”, “VENDITE”, “COSTI”, “PROFITTI”)
def
20. Calcolare media e mediana di costi, vendite e profitti
media_costi <- mean(def$COSTI)
media_costi
media_vendite <- mean(def$VENDITE)
media_vendite
media_profitti <- mean(def$PROFITTI)
media_profitti
mediana_costi <- median(def$COSTI)
mediana_costi
mediana_vendite <- median(def$VENDITE)
mediana_vendite
mediana_profitti <- median(def$PROFITTI)
mediana_profitti
# 20. Selezionare solo righe con profitti maggiori di 1100
subset_def <-subset(def,PROFITTI>1100)
subset_def
# 1. Importare il file [Link] e creare il data frame impiegati
Impiegati<-[Link](“c:/tmp/[Link]”, stringsAsFactors=FALSE)
# 2. Mettere in minuscolo i valori della variabile DEPARTMENT
impiegati$DEPARTMENT <- tolower(impiegati$DEPARTMENT)
impiegati
# 3. Aumentare di 10 la variabile SALARY
impiegati$SALARY <- impiegati$SALARY + 10
impiegati
# 4. Moltiplicare per 0.01 la variabile AGE
impiegati$AGE <- impiegati$AGE * 0.01
impiegati
# 5. Creare la nuova variabile TOT_SALARY come somma di SALARY e BONUS
impiegati$TOT_SALARY <- impiegati$SALARY + impiegati$BONUS
impiegati
# 6. Arrotondare a 1 cifra decimale la variabile TOT_SALARY
impiegati$TOT_SALARY <- round(impiegati$TOT_SALARY,digits=1)
impiegati
# 7. Arrotondare a 0 cifre decimali la variabile AGE
impiegati$AGE <- round(impiegati$AGE, digits=0)
impiegati
# 8. Estrarre dalla variabile EMP_ID la stringa dal secondo carattere all’ultimo e creare la variabile
EMP_ID_NEW
impiegati$EMP_ID_NEW <- substr(impiegati$EMP_ID, 2,4)
impiegati
# 9. Abbandonare la variabile DEPARTMENT
drop<-c(-2)
impiegati<-impiegati[drop]
impiegati
# 10. Calcolare media, mediana, range, somma, minimo e massimo di TOT_SALARY
media_tot_salary <- mean(impiegati$TOT_SALARY)
mediana_tot_salary <- median(impiegati$TOT_SALARY)
range_tot_salary <- range(impiegati$TOT_SALARY)
somma_tot_salary <- sum(impiegati$TOT_SALARY)
min_tot_salary <- min(impiegati$TOT_SALARY)
max_tot_salary <- max(impiegati$TOT_SALARY)
# 11. Selezionare le sole osservazioni con AGE maggiore di 30
Subset(impiegati,AGE>30)
# 12. Visualizzare gli oggetti creati nella sessione di lavoro
ls()
# 13. Visualizzare la cronologia dei comandi
history()
# 1-2-3
Voti1<-[Link](“c:/tmp/[Link]”,stringsAsFactors=FALSE)
voti1
Voti2<-[Link](“c:/tmp/[Link]”,stringsAsFactors=FALSE)
voti2
Studenti<-[Link](“c:/tmp/[Link]”,stringsAsFactors=FALSE)
Student
# 4. Concatenare verticalmente voti1 e voti2
voti_def <- rbind(voti1, voti2)
voti_def
# 5. Unire voti_def e studenti su STUDENTID
voti_all <- merge(voti_def, studenti, by = "STUDENTID")
# 6. Mettere in maiuscolo CITY e in minuscolo GENDER
voti_all$CITY <- toupper(voti_all$CITY)
voti_all$GENDER <- tolower(voti_all$GENDER)
# 7. Creare la variabile STUDENTID_NEW
voti_all$STUDENTID_NEW <- substr(voti_all$STUDENTID, 2, 4)
# 8. Calcolare media, mediana, e quantili della variabile MARK
media_mark <- mean(voti_all$MARK)
media_mark
mediana_mark <- median(voti_all$MARK)
mediana_mark
quantili_mark <- quantile(voti_all$MARK)
quantili_mark
# 9. Calcolare range, varianza, deviazione standard di MARK
range_mark <- range(voti_all$MARK)
range_mark <- range
varianza_mark <- var(voti_all$MARK)
varianza_mark
sd_mark <- sd(voti_all$MARK)
sd_mark
# 10. Visualizzare le statistiche principali del data frame voti_all
summary(voti_all)
# 11. Costruire la distribuzione di frequenza per CLASS
table(voti_all$CLASS,dnn=c(“CLASSE”))
# 12. Costruire la distribuzione di frequenza a due vie per CLASS e MARK
table(voti_all$CLASS, voti_all$MARK, dnn=c(“CLASSE”,”VOTO”))
# 13. Costruire la distribuzione di frequenza a tre vie per CLASS, MARK e GENDER
table(voti_all$CLASS, voti_all$MARK, voti_all$GENDER,dnn=c(“CLASSE”,”VOTO”,”GENERE”))
# 14. Creare il data frame voti_9 per gli studenti con MARK pari a 9
voti_9 <-subset(voti_all, MARK== 9)
# 15. Visualizzare tutti gli oggetti creati
ls()
# 16. Visualizzare la cronologia dei comandi
history()
# 1) Importare il file [Link] creando il data frame ORDERS
ORDERS <- [Link]("[Link]",sep=”;”,stringsAsFactors=FALSE)
ORDERS
# 2) Importare il file [Link] creando il data frame CUSTOMERS
CUSTOMERS <- [Link]("[Link]",sep=”;”,stringsAsFactors=FALSE)
CUSTOMERS
# 3) Unire le due tabelle in base alla loro chiave unica, creando il data frame UNIONE
UNIONE <- merge(ORDERS, CUSTOMERS, by = "CUSTOMERID")
UNIONE
# 4) Modificare la colonna GENDER mettendola in minuscolo
UNIONE$GENDER <- tolower(UNIONE$GENDER)
UNIONE
# 5) Modificare la colonna TYPE mettendola in maiuscolo
UNIONE$TYPE <- toupper(UNIONE$TYPE)
UNIONE
# 6) Creare la nuova colonna TOTAL_AMOUNT come somma di AMOUNT e SHIPPING
UNIONE$TOTAL_AMOUNT <- UNIONE$AMOUNT + UNIONE$SHIPPING
UNIONE
# 7) Creare la nuova colonna TOTAL_AMOUNT_DISCOUNT data dal 90% di TOTAL_AMOUNT
UNIONE$TOTAL_AMOUNT_DISCOUNT <- UNIONE$TOTAL_AMOUNT * 0.9
UNIONE
# 8) Calcolare statistiche di TOTAL_AMOUNT_DISCOUNT
Media = mean(UNIONE$TOTAL_AMOUNT_DISCOUNT)
Mediana = median(UNIONE$TOTAL_AMOUNT_DISCOUNT)
Minimo = min(UNIONE$TOTAL_AMOUNT_DISCOUNT)
Massimo = max(UNIONE$TOTAL_AMOUNT_DISCOUNT)
Varianza = var(UNIONE$TOTAL_AMOUNT_DISCOUNT)
Deviazione_Standard = sd(UNIONE$TOTAL_AMOUNT_DISCOUNT)
Range = range(UNIONE$TOTAL_AMOUNT_DISCOUNT)
Quantili = quantile(UNIONE$TOTAL_AMOUNT_DISCOUNT)
# 9) Creare istogramma del numero di ordini per età del cliente
windows()
hist(UNIONE$AGE,main = "Numero ordini per fascia di età",xlab = "Fascia di età",ylab = "Numero
ordini",col = "red")
# 10) Creare grafico a barre del numero di ordini per genere del cliente
Counts<-table(UNIONE$GENDER)
Counts
Windows()
barplot(counts, main="Numero di ordini per genere di cliente", xlab="Genere", ylab="Numero
ordini", col="green")
windows()
barplot(counts, main="Numero di ordini per genere di cliente", xlab="Numero ordini",
ylab="Genere", horiz=TRUE, col="green")
windows()
plot(UNIONE$SHIPPING, UNIONE$TOTAL_AMOUNT, main="Importo ordini in funzione delle spese di
spedizione", xlab="Spese di spedizione", ylab="Importo ordini", col="blue")
windows()
boxplot(UNIONE$TOTAL_AMOUNT_DISCOUNT~UNIONE$GENDER, main="Importo scontato per
genere di cliente", xlab="Genere", ylab="Importo scontato", col="yellow")
ls()
history()