###### ESERCITAZIONE 1 ## ### semplici operazioni numeriche e logiche # simboli +,-,/,%%,%/%,*,^ x<-5 y<-2 z<-x+y z1<-x-y z2<-x/y #z3<-x%%y #resto di una divisione #z4<-x%/%y #quoziente di una divisione z5<-x*y z6<-x^y sqrt(16) sqrt(-1) NaN #Not a Number - non esiste nel campo reale # simboli <;<=;>;>=;==;!= logical conditions x<13 y<=1 (x+y)==7 z2>=z4 (x*5)!=z6 ### sequenza di numeri e vettori x1<-c(1,2,3,4) #funzione concatenate #assign("x", c(1,2,3,4)) #“x” tra virgolette perché non è un oggetto preesistente is.vector(x1) #stringa logica, TRUE dim(x1) #i vettori non hanno dimensione length(x1) #hanno lunghezza x2<-1:4 x3<-seq(from=1,to=4) #funzione sequence #by=1 valore di incremento (default) y1<-seq(from=1,to=4,by=0.5) y2<-seq(from=1,by=0.5,length=7) x1==x2 x1==x3 x2==x3 y1==y2 x1[2] #help("[[") x1[-1] #il vettore x1 viene modificato? length(x1) names<-c("sofia","luca","marco") #vettore di stringhe names mode(names) #“character” di caratteri alfanumerici mode(is.vector(x)) #“logical” mode(x) #“numeric” NAMES<-toupper(names) #names!=NAMES (R è "case sensitive") names!=NAMES x<-c(10.4, 5.6, 3.1, 6.4, 21.7) #valori in ordine casuale y<-1/x y length(y) z<-c(x, 0, x) length(z) v <- 2*x + y + 1 v length(v) rep(1,times=5) #funzione replicate u<-rep(x,times=5) #ripetizione del vettore "x" per 5 volte u length(u) u1<-rep(x,each=2) #ciascun elemento di x duplicato u1 length(u1) u2<-rep(x,times=5,each=2) #combinazione di u e u1 u2 length(u2) u3<-rep(u1,times=5) u3 u2==u3 unique(u3) #consente di ritornare al vettore di origine "x" unique(u)==unique(u1) unique(u1)==unique(u2) unique(u2)==unique(u3) na<-rep(NA,100) #Not Available na is.na(na) #localizzazione di valori mancanti (missing values) ### statistiche minmax<-c(min(x),max(x)) range(x) sum(x) #diff(x) #diff n-(n-1) prod(x) #produttoria cumsum(x) #cumulative sum cumprod(x) #cumulative prod mean(x) #media sum(x)/length(x) var(x) #varianza corretta sum((x-mean(x))^2)/(length(x)-1) sort(x) #riordina gli elementi in modo crescente (permutazioni) order(x, decreasing=TRUE) median(x) #mediana ### calcolo aritmentico su vettori x<-c(3,-1,4,7,2) y<-c(5,0,1,-7,9) z<-x+y z1<-x-y z2<-x/y z5<-x*y h<-x[2:4] x<-sort(x) h<-x[2:4] h1<-z[z>5] #estrae gli elementi di z > 5 h2<-z3[-c(2,3)] #elimina gli elementi su posizione 2 e 3 ### salvataggio file e oggetti save.image() save(x,y,z,file="xyz.rdata") load("xyz.rdata") ls() #lista oggetti file - nuovo script - salva con nome ### cambio directory setwd("~/") #EX in R: definire almeno un vettore y3 uguale a y1 combinando la funzione #“c” e “:”. Verificate che sia un vettore e che sia uguale a x1. (punti 0.5) #EX in aula (10 minuti): elencare le differenze tra i vettori 1:n-1 e 1:(n-1) (1 punto) n<-10 length(n) 1:n-1 1:(n-1) length(1:n-1)==length(1:(n-1))