Esercitazione1.R

lorenzo — Sep 29, 2013, 5:05 PM

# definisco la directory di lavoro
setwd("/Users/lorenzo/Documents/Lavori guidati e corsi matematica/ST410 a.a. 2013-2014/Esercitazione1")

# assegno un valore alla variabile a, alla variabile b e le sommo
a<-1
b<-1
a+b 
[1] 2

# determino il tipo della variabile a
typeof(a)
[1] "double"
is.numeric(a)
[1] TRUE
is.character(a)
[1] FALSE

# calcolo la radice quadrata di -1: come reale, come numero complesso
sqrt(-1)
Warning: Si รจ prodotto un NaN
[1] NaN
sqrt(as.complex(-1))
[1] 0+1i
sqrt(-1+0i)
[1] 0+1i


# creo un vettore di numeri da 1 a 10 in tre modi diversi
x<-c(1,2,3,4,5,6,7,8,9,10)
x<- seq(from=1, to=10, by=1) # oppure seq(1,10,1) oppure seq(to=10, by=1, from=1)
x<-1:10

# creo un vettore di 1 di lunghezza 100
x<-rep(1,100)

# estraggo un sottoinsieme di elementi dal vettore x=(1...100)
x<-1:100
x[3]
[1] 3
x[5:7]
[1] 5 6 7
x[rep(c(T,F),50)]
 [1]  1  3  5  7  9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
[24] 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91
[47] 93 95 97 99

#Esercizio 1.1
typeof(x<-c("A",1,TRUE))
[1] "character"
typeof(x<-c(1,2,FALSE))
[1] "double"
#Esercizio 1.2
x<-rep(0,42)
y<-1:21
pari<-y*2
dispari<-pari-1
x[pari]<-1:21
x[dispari]<-letters[-c(10,11,23,24,25)]


#Esercizio 2
# primo modo
x<-c(7,9,15)
media_campionaria <- mean(x)
varianza_campionaria<-var(x)
m2_campionario <-(length(x)-1)/length(x)*var(x)
# secondo modo
media_campionaria<-sum(x)/length(x)
m2_campionario<-sum((x-media_campionaria)^2)/length(x)
varianza_campionaria<-sum((x-media_campionaria)^2)/(length(x)-1)

#Dati due vettori di caratteri definisco due fattori: il primo non ordinato, il secondo ordinato 
x<-c("M", "F", "M", "M", "M", "F")
y<-c("sufficiente", "buono", "buono", "insufficiente", "ottimo", "ottimo", "sufficiente")
x<-factor(x)
y<-ordered(y, levels=c("insufficiente", "sufficiente", "buono", "ottimo"))
# analisi delle frequenze
table(x)
x
F M 
2 4 
table(y)
y
insufficiente   sufficiente         buono        ottimo 
            1             2             2             2 
table(x)/length(x)
x
     F      M 
0.3333 0.6667 
pie(table(x), main="Sesso", col=c("pink", "blue"))

plot of chunk unnamed-chunk-1

barplot(table(y), main="Valutazione", col=rainbow(15))

plot of chunk unnamed-chunk-1


#creo un dataset
x<-factor(c("M", "F", "M", "M", "F"))
y<-c(29,40,23,62,60)
data<-data.frame(sesso=x, eta=y)

#Esercizio 3
istruzione<-c(13,16,18,21,11)
data<-cbind(data,istruzione)
a<-data.frame(sesso="M",eta=80,istruzione=8)
data<-rbind(data,a)
data[4,"eta"] #oppure data[4,2] oppure data$eta[4]
[1] 62
mean(data$eta) #oppure mean(data[,2])
[1] 49
tapply(data$istruzione,data$sesso,mean)
   F    M 
13.5 15.0 

##Esercizio 4
movies<-read.csv("http://people.stern.nyu.edu/wgreene/Text/Edition7/TableF4-3.csv")
movies<-movies[,1:5]
head(movies)
       BOX MPRATING BUDGET STARPOWR SEQUEL
1 19167085        4   28.0    19.83      0
2 63106589        2  150.0    32.69      1
3  5401605        4   37.4    15.69      0
4 67528882        3  200.0    23.62      1
5 26223128        2  150.0    19.02      0
6 69637740        3   37.0    15.34      0
str(movies)
'data.frame':   62 obs. of  5 variables:
 $ BOX     : int  19167085 63106589 5401605 67528882 26223128 69637740 14800723 31069826 12063452 4271451 ...
 $ MPRATING: int  4 2 4 3 2 3 3 3 3 4 ...
 $ BUDGET  : num  28 150 37.4 200 150 37 130 80 40 35 ...
 $ STARPOWR: num  19.8 32.7 15.7 23.6 19 ...
 $ SEQUEL  : int  0 1 0 1 0 0 0 0 1 1 ...
summary(movies)
      BOX              MPRATING        BUDGET         STARPOWR   
 Min.   :  511920   Min.   :1.00   Min.   :  5.0   Min.   : 0.0  
 1st Qu.: 6956492   1st Qu.:2.00   1st Qu.: 30.5   1st Qu.:12.2  
 Median :16930926   Median :3.00   Median : 37.4   Median :18.1  
 Mean   :20720651   Mean   :2.97   Mean   : 53.3   Mean   :18.0  
 3rd Qu.:26696144   3rd Qu.:4.00   3rd Qu.: 60.0   3rd Qu.:24.1  
 Max.   :70950500   Max.   :4.00   Max.   :200.0   Max.   :36.8  
     SEQUEL     
 Min.   :0.000  
 1st Qu.:0.000  
 Median :0.000  
 Mean   :0.145  
 3rd Qu.:0.000  
 Max.   :1.000  

movies$MPRATING<-ordered(movies$MPRATING, levels=c(1,2,3,4), labels=c("G", "PG", "PG-13", "R"))
movies$BOX<-movies$BOX/10^6

#alcuni esempi di boxplot per la variabile BOX
boxplot(movies$BOX, range=0)

plot of chunk unnamed-chunk-1

boxplot(movies$BOX, horizontal=TRUE, col="grey", border="red")

plot of chunk unnamed-chunk-1

boxplot(movies$BOX, horizontal=TRUE, col="grey", border="red", range=0.5, main="Ricavi al botteghino - grafico a scatola e baffi", xlab="milioni di dollari")

plot of chunk unnamed-chunk-1


#calcolo di alcune misure di posizione e dispersione collegate al boxplot
quantile(movies$BOX,0.25)
  25% 
6.956 
quantile(movies$BOX,0.75)
 75% 
26.7 
median(movies$BOX)
[1] 16.93
IQR(movies$BOX)
[1] 19.74
diff(range(movies$BOX))
[1] 70.44
boxplot(movies$BOX, range=0.5, plot=F)
$stats
        [,1]
[1,]  0.5119
[2,]  6.7415
[3,] 16.9309
[4,] 26.8538
[5,] 36.3576

$n
[1] 62

$conf
      [,1]
[1,] 12.90
[2,] 20.97

$out
[1] 63.11 67.53 69.64 40.57 41.03 55.21 59.32 70.95

$group
[1] 1 1 1 1 1 1 1 1

$names
[1] "1"

#alcuni esempi di istogrammi
hist(movies$BOX, freq=F, main="Istogramma", xlab="ricavi (milioni di dollari)", col="grey")

plot of chunk unnamed-chunk-1

hist(movies$BOX, freq=F, main="Istogramma", xlab="ricavi (milioni di dollari)", col="grey", breaks=50)

plot of chunk unnamed-chunk-1

hist(movies$BOX, freq=F, main="Istogramma", xlab="ricavi (milioni di dollari)", col="grey", breaks=c(0,5,10,15,20,30,40,70,90))

plot of chunk unnamed-chunk-1

# notare il warning del prossimo comando:
hist(movies$BOX, freq=T, main="Istogramma", xlab="ricavi (milioni di dollari)", col="grey", breaks=c(0,5,10,15,20,30,40,70,90))
Warning: the AREAS in the plot are wrong -- rather use 'freq = FALSE'

plot of chunk unnamed-chunk-1