Anteprima
Vedrai una selezione di 7 pagine su 26
Statistica in R Pag. 1 Statistica in R Pag. 2
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Statistica in R Pag. 6
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Statistica in R Pag. 11
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Statistica in R Pag. 16
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Statistica in R Pag. 21
Anteprima di 7 pagg. su 26.
Scarica il documento per vederlo tutto.
Statistica in R Pag. 26
1 su 26
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

X

Y

# "detach": ripristina il comportamento abituale

detach(dati)

# Creare dataframe mediante

# Le funzioni cbind() e rbind()

mat<- matrix(c(5,8,10),2,3)

mat

ri <- 4:6

ri

co <- rep(8,2)

# attacca il vettore "ri" come ulteriore riga di "mat"

rbind(mat,ri)

# attacca il vettore "co" come ulteriore colonna di "mat"

cbind(mat,co)

# creare un dataframe

dati2<-data.frame(cbind(mat,co))

# assegnare nomi alle colonne

colnames(dati2) <- c("variabile1"," variabile2"," variabile3","altro")

# Estrarre numero di righe e di colonne

# numero di righe di "mat"

nrow(mat)

# numero di colonne di "mat"

ncol(mat)

# dimensioni di "mat"

dim(mat)

# numero di elementi in "mat"

length(mat)

# Somma progressiva dei valori di una variabile (utile con valori ordinati)

cumsum(dati2$variabile1)

# Prodotto progressivo dei valori di una variabile

cumprod(dati2$variabile1)

# Somma dei valori di una variabile

sum(dati2$variabile1)

# Prodotto dei valori di una variabile

prod(dati2$variabile1)

# "function" è un nome (di comando R) riservato

somma <- function(a,b) {a+b}

somma(2,3)= 5

for(variabile a valori in un insieme){ esegui i comandi }

x <- 0 # inizializzazione di contatore

for(i in 1:10) {x <- x + i} # un ciclo è dispendioso in termini di tempo

x

sum(1:10) # se è possibile usare funzioni interne ad R

# Cicli indefiniti: while

# Struttura di un ciclo while

# while( la condizione risulta verificata ){ esegui i comandi }

x <- 0 # inizializzazione

while(x < 10) {x <- x+1}

x

x <- 0

while(x < 50000) {x <- x+1} # cicli sono dispendiosi in termini di tempo

##### 13) Scambio di dati con altri software

# avendo salvato in precedenza dati1

load("prova.RData")

write.table(dati, file = "dati.txt", sep = "\t", col.names = NA) # "\t"

tabulatore

# col.names = NA serve a creare un nome anche per la prima colonna di row.names

write.table(dati, file = "dati-excel.txt", sep = "\t", col.names = NA, dec=",")

write.table(dati, file = "dati-excel.xls", sep = "\t", col.names = NA, dec=",")

# N.B.: la versione italiana di excel usa la "," come separatore di decimali

# per re-importare un file generato da Excel

read.delim("dati-excel.xls",dec=",") # dec="," è riferito al file di ingresso

# row.names è utile per specificare dove si trovano le etichette delle righe

read.delim("dati-excel.xls",dec=",",row.names=1)

?read.table # per un help completo su come importare file di testo

?write.table # per un help completo su come esportare file di testo

# input/output di dati da SAS, SPSS, Stata e altri

library(foreign)

# output in formato TeX e HTML di dati e tabelle

library(xtable)

# Salvare l'output dei comandi di R

# INIZIO: tutto l'output di R verrà registrato nel file R-out.txt

sink("R-out.txt")

load("prova.RData")

dati

cat("\n") # spazio nella visualizzazione

str(dati)

sink() # FINE: il file viene chiuso

# Salvare la lista dei comandi

savehistory() # per salvarla

loadhistory() # per caricarla

# Utilizzare script esterni

# in un semplice file di testo si possono elencare dei comandi e

# chiedere ad R di eseguirli in sequenza

source("script.R")

# importare i dati necessari da excel

library(readxl)

store.df=read_excel("Weekly_sales.xlsx")

View(store.df)

# La vb country non è importata come fattore, occorre convertire

store.df$country=as.factor(store.df$country)

# by(): calcolare una funzione per gruppi

by(store.df$p1sales, store.df$storeNum, mean)

# aggregate(): creare un vettore ottenuto aggregando una variabile secondo una

# funzione

storeMean = aggregate(store.df$p1sales, by=list(store=store.df$storeNum), mean)

storeMean

storeMean2=aggregate(store.df$p1sales,

by=list(store=store.df$storeNum,country=store.df$country), mean)

storeMean2

names(storeMean2)=c("store","country","mean.sales")

# Aggregare con somma

p1sales.sum = aggregate(store.df$p1sales,

by=list(country=store.df$country), sum)

# Disegnare una mappa del mondo con la funzione rworldmap()

install.packages("rworldmap")

library(rworldmap) # Ricordarsi di installare la libreria

library(RColorBrewer)

# come installare un pacchetto

install.packages("datasets")

# caricare un pacchetto

library(datasets)

# chiedere aiuto ad R

help(datasets)

# caricare un dataset presente in un pacchetto

dati<-mtcars

# solo per dataset presenti nei pacchetti:

# ispezionare le variabili presenti nel dataframe

?mtcars

# descrivere il dataset: quante unità di analisi? Quante variabili?

# descrizione delle variabili

# cyl:

# mpg:

# am:

# ispezionare la struttura dei dati

str(dati)

# Accedere agli elementi di oggetti complessi di un dataframe

# mostrare la variabile am del dataset dati

dati$am

# mostrare il primo elemento della variabile am

dati$am[1]

# attach e detach servono a non ripetere dati$

attach(dati)

###########################################

# 1) Distribuzioni di frequenza

###################################

# frequenze assolute

table(am)

# frequenze relative

table(am)/length(am)

length(am)

# frequenze percentuali

table(am)/length(am)*100

# salvare la tabella di frequenza in un dataframe a parte

tab1<-data.frame(table(am)/length(am))

# frequenze cumulate

cumsum(table(am))

# frequenze cumulate

cumsum(table(cyl))

suddividere un carattere in classi

# classi di uguale ampiezza

table(cut(mpg, breaks = 3))

# ampiezza diversa

table(cut(mpg, breaks=c(10,20,30,35)))

# definire i punti estremi delle classi

classi <- c(10,20,30,35)

# classi chiuse a destra (default)

table(cut(mpg, br=classi))

# classi chiuse a sinistra

table(cut(mpg, br=classi, right=FALSE))

############

### 2) Rappresentazioni grafiche

###########

########## grafico a torta

am_factor <- factor(am)

levels(am_factor) <- c("Automatic","Manual")

pie(table(am_factor))

# grafico a torta (2)

pie(table(am_factor), density=15, col=1:4)

# diagramma a bastoncini

plot(table(am_factor),ylim = c(0, 25))

# diagramma a barre

plot(factor(gear))

# Migliorare l'aspetto del grafico a barre

?barplot

barplot(table(cyl),space=1,col="darkred",xlab="cilindri",ylab="frequenze

assolute")

#################### Istogramma

hist(mpg, br=classi)

# modificare gli assi

hist(mpg, br=classi,xlim = c(0, 40),ylim = c(0, 0.1))

# informazioni aggiuntive comprese le densità

# relativamente alle frequenze relative

hist(mpg,br=classi,plot=FALSE)

# istogramma con le frequenze

hist(mpg, br=classi, freq=TRUE) # R ci metterà in guardia per avere classi non

equiampie

# ?hist (TRUE if and only if breaks are equidistant)

# classi

hist(mpg,br=classi,xlim = c(10, 40),ylim = c(0, 0.06))

# tre classi di stessa ampiezza

hist(mpg,br=3)

# cinque classi di stessa ampiezza

hist(mpg,br=5)

# frequenza assoluta

hist(mpg,br=3,freq=TRUE)

# densità relative

hist(mpg,br=3,freq=FALSE)

# classi ottenute con il metodo di Sturges: 1+10/3*log10(n)

hist(mpg,br="Sturges")

# Migliorare l'aspetto dell'istogramma

# Aggiungere i nomi degli assi

hist(mpg, br=3,freq=FALSE,

main="Distribuzione delle Auto per classi di consumo",

xlab="Consumi (miglia al gallone)",

ylab="Densità" )

# Rendere l'istogramma colorato

hist(mpg, br=3,freq=FALSE,

main="Distribuzione delle Auto per classi di consumo",

xlab="Consumi (miglia al gallone)",

ylab="Densità",

col="lightblue") # colore delle barre

# Aggiungere la curva della densità

hist(mpg, br=3,freq=FALSE,

main="Distribuzione delle Auto per classi di consumo",

xlab="Consumi (miglia al gallone)",

ylab="Densità",

col="lightblue")

lines(density(mpg, bw=10), # bw = smoothing

type="l", col="darkred", lwd=2) # lwd = spessore della linea

# avendo utilizzato il comando attach(), occorre sempre concluderlo

detach(dati)

rm(list=ls(all=TRUE))

# importare dati di formati differenti

# libreria che contiene funzioni di importazione dati

# da formati prodotti da altri software

library(foreign)

# definire la working directory

#(cartella del computer in cui si intende lavorare) esempio:

setwd("C:\\Users\\ ")

# oppure

setwd("C:/Users/")

# NOTA: per controllare la working directory

getwd()

# importare i dati in formato csv

dati<-read.csv("viaggi_ISTAT.csv") #NOTA: utilizzo dell’opzione sep=””

# creazione di un subset senza dati mancanti

dati<-dati[complete.cases(dati),]

# eliminare i numeri di riga dal dataset importato

rownames(dati) <- NULL

attach(dati)

# grafico delle frequenze cumulate della variabile

breaks<-c(0,5,10,15,25,35)

freq<-table(cut(durata,breaks))

freq

freq_cum<-c(0,cumsum(freq))

freq_cum

plot(breaks,freq_cum,pch=16,main="Durata del viaggio", xlab="Giorni",

ylab="Frequenza cumulata")

lines(breaks,freq_cum)

############

### 2) Sintesi della distribuzione:

### Descrivere la forma e la posizione della distribuzione

###########

# restituisce il minimo di spesa_giorn

min(spesa_giorn)

# restituisce il massimo di spesa_giorn

max(spesa_giorn)

# restituisce il range (campo di variazione) di spesa_giorn

range(spesa_giorn)

# restituisce la media aritmetica di spesa_giorn

mean(spesa_giorn)

# restituisce la mediana di spesa_giorn

median(spesa_giorn)

# calcolare la mediana per caratteri qualitativi

# necessario scaricare e installare il pacchetto labstatR

install.packages("labstatR")

library(labstatR) # serve per la funzione Me()

eta_classi <- ordered(eta_classi, levels = c("<=14 anni", "15-24 anni", "25-44

anni", "> 45 anni"))

sort(eta_classi)

# calcola la mediana per caratteri qualitativi (labstatR)

Me(eta_classi)

# Non esiste una funzione diretta per il calcolo della media geometrica

exp(mean(log(spesa_giorn)))

# Percentili (Quantili)

quantile(spesa_giorn) # default = 0:4*0.25

# restituisce i quantili in spesa_giorn in corrispondenza<

Dettagli
A.A. 2022-2023
26 pagine
SSD Scienze economiche e statistiche SECS-S/01 Statistica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher fraacremascoli di informazioni apprese con la frequenza delle lezioni di Statistics e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università Cattolica del "Sacro Cuore" o del prof Barbieri Laura.