# sono state prese alcune informazioni sugli studenti che occupano la prima fila a sinistra della cattedra, organizzate nei seguenti #oggetti: prima_nome<-c("fede", "lore","berny", "jessy", "sofia") prima_eta<-c(25,24,22,22,23) prima_altezza<-c(167, 190,182,168,165) prima_peso<-c(71.1, 81.5,67.4,56.3,61.3) # in analogia, create l'oggetto genere, sapendo che, nell'ordine, gli studenti si definiscono: femmina, maschio, maschio, femmina, femmina (genere<-c("F", "M","M","F","F")) #create il dataframe fila1, composto dalle variabili: nome, eta, altezza, peso, genere; usate la funzione data.frame fila1<-data.frame(nome=prima_nome, eta=prima_eta, altezza=prima_altezza, peso=prima_peso, genere=genere) View(fila1) #lo studente "lore" della prima fila viene sostituito dalla studentessa stefy: è una ragazza, ha 21 anni, è alta 156 cm e pesa 65.3 kg. Con il metodo che preferite, sostituite i dati della riga "lore" nel dataframe fila1 con i dati di stefy. fix(fila1) #abbiamo chiesto i voti di laurea e di diploma degli studenti: nell'ordine fede, stefy, berny, jessy e sofia, i voti di laurea sono: 101, 104, 104, 102, ,103, e quelli di diploma sono: 85, 100, 72, 75, 80. Create le due nuove variabili "laurea" e "diploma" nel dataframe fila1. fila1$laurea<-c(101, 104, 104, 102, 103) fila1$diploma<-c(85, 100, 72, 75, 80) #abbiamo anche chiesto le date di compleanno, che nell'ordine sono: 12 luglio 1997, 15 febbraio 2001, 11 aprile 2000, 14 gennaio 2000, 31 agosto 1999. Create la variabile "compleanno", di classe Date, nel dataframe fila1. fila1$compleanno<-as.Date(c("1997/07/12", "2001/02/15", "2000/04/11", "2000/01/14", "1999/08/31")) class(fila1$compleanno) #cambiate i nomi delle variabili nel dataframe fila1: cm invece di altezza, kg invece di peso, anni invece di età. i nomi delle variabili dovranno quindi essere: nome, anni, cm, kg, genere, laurea, diploma, compleanno. names(fila1)<-c("nome", "anni", "cm", "kg", "genere", "laurea", "diploma", "compleanno") #quanto pesa la terza persona? fila1[3,4] #come si chiamano la terza e la quarta persona? fila1[3:4,1] #quanto sono alte la seconda e la quinta persona? fila1[c(2,5),3] #quali sono altezza e peso delle persone dalla prima alla quarta posizione? fila1[1:4, 3:4] #quanti anni hanno gli studenti della prima fila, tranne l'ultimo? fila1[-5,2] #create la matrice "fila_m", composta da peso, altezza ed età degli stessi soggetti che compongono il dataframe fila1. Assegnate alle colonne della matrice gli stessi nomi che compaiono nel dataframe fila1 fila_m<-matrix(data = c(prima_eta, prima_altezza, prima_peso), nrow = 5, ncol = 3) colnames(fila_m)<-c("anni", "cm", "kg") #dopo aver verificato di aver eseguito correttamente l'operazione precedente, eliminate la matrice fila_m dallo spazio di lavoro View(fila_m) rm(fila_m) #controllate la classe delle variabili nel dataframe fila1: se avete creato $genere come character invece di factor, rendetela di classe factor. str(fila1) fila1$genere<-as.factor(fila1$genere) class(fila1$genere) #Ora ci occupiamo degli studenti della prima fila di destra... vedi testo #usando le precedente informazioni, create con il metodo che preferite il dataframe "fila2", che dovrà quindi contenere le variabili denominate: nome, anni, cm, kg, genere, laurea, diploma, compleanno. prima2_nome<-c("fra", "cami", "vale", "lisa", "mike", "carlo", "ary") prima2_anni<-c(23, 22, 22, 22, 24, 23, 23) prima2_cm<-c(182, 148, 160, 185, 180, 174, 175) prima2_kg<-c(72.3, 46.4, 60.5, 80.2, 75.5, 67.5, 65.3) prima2_genere<-c("F","F","F","F","M","M","F") prima2_laurea<-c(102,108,103,100,104,102,109) prima2_diploma<-c(95,70,75,91,68,92,71) prima2_compleanno<-as.Date(c("1999/08/05","2000/05/11", "2000/02/06", "2000/01/19", "1998/09/20", "1999/07/30", "1998/12/01")) class(prima2_compleanno) fila2<-data.frame(nome=prima2_nome, anni=prima2_anni, cm=prima2_cm, kg=prima2_kg, genere=prima2_genere, laurea=prima2_laurea, diploma=prima2_diploma, compleanno=prima2_compleanno) View(fila2) #verificate che anche la variabile fila2$genere sia di classe factor e, in caso contrario , rendetela factor str(fila2) fila2$genere<-as.factor(fila2$genere) #unite il dataframe fila1 al dataframe fila2 creando il dataframe studenti; visualizzate il dataframe studenti, con cui lavorerete d'ora in poi. studenti<-rbind(fila1, fila2) View(studenti) #create il fattore studenti$fila a due livelli: le prime cinque righe descrivono gli studenti della fila sinistra (livello "sx"), le successive sette righe descrivono gli studenti della fila di destra (livello "dx"). studenti$fila<-as.factor(c(rep("sx",5), rep("dx",7))) class(studenti$fila) #create la variabile studenti$voto come media del voto di laurea e del voto di diploma conseguiti studenti$voto<-(studenti$laurea+studenti$diploma)/2 #create la variabile fila2$BMI: peso (kg) diviso per l'altezza (in metri) elevata al quadrato. studenti$BMI<-studenti$kg/(studenti$cm/100)^2 #costruite, con il metodo che preferite, i seguenti sottoinsiemi: ##dataframe ragazze: tutte le variabili delle sole ragazze ragazze<-studenti[studenti$genere=="F",] ##oppure ragazze2<-subset(x=studenti, subset = genere=="F") ##dataframe ragazze_alte: tutte le variabili delle sole ragazze alte almeno 1.70 m ragazze_alte<-studenti[studenti$genere=="F" & studenti$cm>=170,] ##oppure ragazze_alte2<-subset(x=studenti, subset = genere=="F" & cm>=170) ##dataframe voto_ragazze_giovani: solo nome e voto delle ragazze di età inferiore a 23 anni voto_giovani<-studenti[studenti$genere=="F" & studenti$anni<23,c(1,10)] ##oppure voto_giovani2<-subset(x=studenti, subset = genere=="F" & anni<23, select = c(nome, voto)) ##dataframe giovani_leggeri: solo studenti di età <23 e peso <70kg giovani_e_leggeri<-studenti[studenti$anni<23 & studenti$kg<70,] ##oppure giovani_e_leggeri2<-subset(x=studenti, subset = studenti$anni<23 & studenti$kg<70) ##dataframe giovani_o_leggeri: solo studenti di età <23 o di peso <70kg giovani_o_leggeri<-studenti[studenti$anni<23 | studenti$kg<70,] ##oppure giovani_o_leggeri2<-subset(x=studenti, subset = studenti$anni<23 | studenti$kg<70)