# alcuni esempi di R, tanto per cominciare 1+1 3*4 2^39 # ma accetta anche 2**39 (fortran-like) 2^40 2^1023 # (quasi) massimo numero rappresentabile 2^1024 1.7e+308 1.8e+308 16 %% 3 # modulo 16 / 3 # divisione normale -> 5.333333 16 %/% 3 # divisione "fortran like" -> 5 log10(1.7e+308) log2(1.7e+308) log(1.7e+308, base=2) log(1.7e+308, 2) sqrt(2) pi exp(1) sin(pi/2) # cos(), tan(), asin(), acos(), atan(), atan2(x,y) atan2(-1,-1)/pi h<-10 # variabili 5->r # nota peculiarita' v<-pi*r^2*h v sqrt(-1) # errore! sqrt(-1+0i) # ok: numeri complessi (0+1i)*(1-2i) i # errore! 0+1i # ok a <- 1+1i sqrt(a) 1 == 2 # operatori logici 2^10 > 1000 2!=3 2!=2 !F 3^3 >= 27 T & F # o anche '&&' T | F # o anche '||' xor(T,T) # OR esclusivo xor(T,F) test<-FALSE if(test) ris="vero" ris # non esiste if( log(10) > 2 ) ris="vero" ris # esiste v.cil <- function(r, h) pi*h*r^2 # nota nome con '.' v.cil(1,2) v.cil(r=1, h=2) v.cil(h=2, r=1) v.cil1 <- function(r=1, h=1) pi*h*r^2 # v.cil1() # funzioni piu' complicate vogliono parentesi ed eventuale return v.cil2 <- function(r, h) { area <- pi*r^2; volume<-area*h; return(volume)} # ovviamente, in uno script e' meglio scriverla in forma ordinata v.cil2 <- function(r, h) { area <- pi*r^2 volume<-area*h return(volume) } # help, ambiente di lavoro, etc help() help(sin) ?exp #Attenzione help(if) # NO help('if') # OK help # notare sin ##### help + operazioni systema help.start() ls() ls.str() q() # termina sessione save() # salva gli 'oggetti', senza uscire system("ls -la") rm(v.cil1) # per rimuovere tutti gli oggetti: rm(list=ls()) # cifre, es pi 2^80 # si agisce sulle opzioni generali, listabili con options() # in particolare options()$digits #valore che si puo' salvare e quindi modificare: cifre.default <- options()$digits options(digits=22) # 22 e' il max (l'opzione dura per la sessione) pi 2^80 # quindi rimettiamo il default options(digits=cifre.default) pi 2^80