vuoi
o PayPal
tutte le volte che vuoi
HELP: ?funzione, serve per vedere che cosa fanno le varie funzioni (xes. ?sqrt)
FUNZIONI MATEMATICHE: exp(), sin(), cos(), tan(), asin(), acos(), atan(), …
AND: &
OR: |
NOT: !
VALORE ASSOLUTO: abs(x)
RADICE QUADRATA: sqrt(x)
LOGARITMO: log(x, base) , xes. log(5, 10) è il logaritmo di 5 in base 10
CONTARE GLI ELEMENTI UGUALI A QUALCOSA: sum(x==6). Non fa la somma dei 6
(6+6+6…) ma la conta quanti elementi sono uguali a sei. Per esempio in un vettore
(1,2,6,7,6,8), sum(x==6) mi restituisce 2.
ROUND: per arrotondare.
Round(n) arrotonda il numero n senza decimali.
Round(n, digits=3) arrotonda a tre decimali.
VARIABILI:
rm(x) rimuove la variabile x dalla memoria di R.
objects() serve per vedere le variabili in uso.
VETTORI: c(elementi del vettore), xes. x=c(1,2,3)
lenght(x) lunghezza del vettore
o mode(x) tipo del vettore
o names(x) xes con x=c(altezza=171, peso=60) mi restituisce “altezza” e “peso”
o
Per creare un vettore vuoto uso il comando vector, xes. x=vector(“numeric”, len=3) =>
vettore numerico di lunghezza 3.
LISTE: x=list().
Con x[[1]] trovo il primo elemento della lista.
o Con [[1]][2] il secondo elemento del primo elemento della lista.
o Con NA lascio un elemento vuoto
o Con is.na() vedo quali elementi sono vuoti.
o
WHICH: condizione di tipo logico.
Se avessi x=c(2,5,8,1,2) e mettessi indici= which(x<5) mi restituisce gli indici degli elementi
del vettore <5, ovvero 1 4 5.
FACTOR: variabili categoriali non ordinate, come argomento richiede un vettore.
As.factor(x) rende la variabile factor anche se all’inizio R non la riconosce come tale.
LEVELS: mi dice quali sono i livelli della variabile. Per riconoscere i livelli la variabile deve
essere factor (per vedere se è factor uso: is.factor(x) )
REP: ripete qualcosa un determinato numero di volte.
Rep(1,2) ripete l’1 per due volte
Rep(c(2,3,), c(6,7)) ripete il 2 per sei volte e il 3 per sette volte.
ORDERED:
is.ordered(x) : per vedere se il vettore x è ordinato
as.ordered(x) : mi fa vedere i livelli ordinati.
FREQUENZE:
Assoluta (fi): numero di volte che si presenta un certo dato. Funzione table()
o Relativa (pi): rapporto tra la assoluta e il numero totale di dati. pi=fi/sum(fi).
o Cumulata (Fi): Fi = cumsum(pi)
o
Data.frame(): crea una matrice in cui posso mettere variabili di natura diversa. Per crearlo
uso: data.frame(“nome colonna” = nomi righe)
Subset(): per selezionare alcune righe del dara frame.
o Per esempio maschi.alti=subset(classe, subset= genere==”M” & cm>190)
Subset(classe, select=genere) per selezionare una colonna, posso anche usare
o semplicemente “classe$genere”
ORDINAMENTO DI UN VETTORE:
sort(x) : ordina in senso crescente
o sort(x, decreasing = TRUE) : ordina in senso decrescente
o order(x) mi restituisce gli indici ordinati xes. con il vettore v=c(2,5,8,1,2), order(v) mi
o restituisce 4 1 5 2 3
GRAFICI:
Creo un data frame e calcolo le frequenze assolute fi con table (fi=table(…)). Per le relative
devo dividere per il totale: pi=fi/sum(fi).
Grafico a torta: comando pie(pi) dove pi è il vettore delle frequenze relative.
Per aggiungere delle etichette:
calcolo per esempio le percentuali con perc=pi*100
o paste() per mettere accanto un nome alla sua percentuale. xes categorie=
o paste(categorie, perc).
pie(pi, labels = categorie) dove labels serve per dire quali etichette voglio
o aggiungere.
main(“titolo”) per aggiungere un titolo in alto
o
xes. pie(pi, labels=paste(levels(mydata$consegna), pi*100, “%”)
Grafico a barre: comando barplot()
Barplot(table(…), main = ”…”, xlab = “Titolo sull’asse x”, ylab = “Titolo
o sull’asse y”)
horiz = TRUE se voglio dei rettangoli orizzontali e non verticali
o las = 2 per mettere i nomi di fianco alle barre in orizzontale
o cex.names = n per rimpicciolire/ingrandire il carattere delle etichette (il valore
o standard è 1)
Grafico a dispersione: comando plot()
plot(x,y, xlim = c(0,30), ylim = c(0,30)) xlim e ylim per controllare il range
o sull’asse x e y
xlim e ylim sono i valori limite sui due assi
o xlab, ylab per dare i titoli agli assi
o pch = 19 mi mette i pallini pieni neri (di solito si usano 19 o 20)
o col = “red” pallini rossi
o type = ”l” per esempio al posto dei pallini mette delle linee (se metto = “h”
o viene il diagramma ad aste)
plot(xi, pi, type = “h”)
points(xi, pi, pch = 19) aggiunge i
pallini sopra le linee
Diagramma a scalini:
Comando ecdf() calcola la funzione di ripartizione empirica
o mydata = rep(xi, fi)
o plot(ecdf(mydata))
o comando text mette il valore delle cumulate su ogni salto. Text(xi, Fi+1)
o => xes. plot(ecfd(mydata), ylim = (0, 1.5))
o
DATI RAGGRUPPATI IN CLASSI:
Ampiezza classe: wi= X – X
o i+1 i
Densità della classe: ci= pi/wi
o Frequenza relativa: pi=fi/n
o Creare le classi: w.classi = cut(x, breaks = c(10, 20, … ), right=FALSE)
o Breaks sono gli intervallic
~ Right mi prende gli intervallic in questo modo: xes. [10, 20), se
~ fosse stato TRUE sarebbe (10, 20]
QUANTILE: funziona quantile(x, prob), dove prob è la posizione del quantile
INDICI DI TENDENZA:
MODA: non c’è un comando apposta per calcolarla, quindi uso table() e quella con la
frequenza maggiore è la moda.
MEDIA:
calcolo la lunghezza della variabile e poi la divido per la lunghezza stessa
n = lenght(x)
o media = sum(x)/n
o
oppure uso la funzione
mean(x)
o
MEDIANA: posso usare il comando sul vettore ordinato median(x.sorted) , dove
x.sorted è appunto il vettore ordinato, oppure posso calcolarlo tramite il quantile 0.5
QUARTILI:
primo quantile: posizione.q1=(n+1)*.25 e trovo la posizione del quantile (xes.
o 1.5)
floor(posizione.q1) mi prende l’intero più basso (=>1)
o ceiling(posizione.q1) mi prende l’intero più alto (=>2)
o mean(costo.sorted[c(floor(posizione.q1), ceiling(posizione.q1))]
o per il terzo quantile sostituisco 0.75
o
Oppure:
uso la funzione quantile, con prob=0.25 mi dà il primo quartile, con prob=0.75
o mi dà il terzo quartile
range(x): mi dà il valore massimo e il minimo del vettore
o diff(range(x)): differenza tra il massimo e il minimo
o differenza interquantilica: q -q In mezzo c’è il 50% di probabilità. Comando
o 3 1.
IQR (costo)
valori outlier: se x < q -1.5*IQR o x > q +1.5*IQR
o i 1 i 3
dati raggruppati:
x=(c(valori), c(frequenze))
o xi=c(valori), fi=c(frequenze)
o sum(xi*fi)/sum(fi) ottengo la media
o pi=fi/sum(fi) frequenze relative
o Fi=cumsum(pi) frequenze cumulate (la mediana è quando F>0.5)
o
CINQUE NUMERI DI SINTESI:
summary(x)
Calcola i cinque numeri di sintesi: minimo, 1 quartile, mediana, 3 quartile, massimo (+ media)
GRAFICO BOXPLOT: boxplot(asdfgh)
boxplot(…, ylab=…, xlab=…, main= “titolo principale), ylim=…, xlim=…))
o la distribuzione è simmetrica se xmedio=q2, q2 - q1 = q3 - q2 e q1 – xmin = xmax -
o q3
MISURE DI DISPERSIONE: dove la varianza è più alta, vuol dire che la distribuzione è più
dispersa.
Var(x)
sqrt(var(x)) oppure sd(x), standard deviation
Cov(x,y) covarianza
cor(x,y) correlazione, varia tra -1 e 1
sd(x)/abs(mean(x)) coefficient di variazione
DIVIDERE LO SCHERMO PER FARE PIU’ GRAFICI:
par(mfrow=(c(2,2)) così mi mette quattro grafici, due sopra e due sotto, se avessi messo
par(mfrow=4) me ne avrebbe messi quattro tutti in riga. Con par(mfrow=c(1,1)) torna
normale.
TABELLA A DOPPIA ENTRATA: per analizzare la relazione tra due o più variabili.
Ogni entrata della tabella è la frequenza congiunta.
costruzione della tabella di contingenza:
o xes. Residenza= c(…), expo=c(…) => freq.congiunte=table(expo, residenza) prima
variabile sulle righe, seconda sulle colonne.
addmargins(freq. congiunte) aggiunge le frequenze marginali ai lati della tabella
o frequenze relative congiunte:
o calcolo la numerosità campionaria n
~ mydata=data.frame(expo, residenza)
n=nrow(mydata) conta il numero delle righe, con ncol() colonne
freq.rel.cong=freq.congiunte/n
~ se aggiungo le frequenze marginali, l’ultima somma mi deve fare 1
~
DIAGRAMMA A BARRE ACCOSTATE/BARPLOT:
barplot(f.congiunte.relative, legend=rownames(f.congiunte.relative), ylim=c(…))
legend mi aggiunge una legenda in cui mi dice cosa vogliono dire i colori, in questo
o caso mi dice cosa c’è sulle righe
barplot(t(…)) t(…) mi calcola la trasposta, inverte le righe e le colonne
o barplot(…, beside=TRUE) informazioni messe una di fianco all’altra
o
FREQUENZE CONDIZIONATE: rappresentano la distribuzione di frequenza di una variabile
per una fissata modalità dell’altra variabile.
Prop.table(f.congiunte, 2) con 2 calcolo le frequenze condizionate per colonna, con 1
per riga.
MATRICI: comando matrix(n, m, k)
n è il valore con cui voglio che mi sia riempita la matrice
o m righe (calcolate con nrow)
o con rownames(Matrice)=c(…) do i nomi alle righe
k colonne (calcolate con ncol)
o con colnames(Matrice)=c(…) do i nomi alle colonne
Per riempire la matrice:
matrix(x, ncol= numero.colonne, byrow=T)
o byrow la riempie per riga
o xes. x=c(1,2,3,4)
o matrix(x, ncol=2, byrow=T)
1 2
3 4
LETTURA DI FILE IN R:
getwd() dice il percorso in cui R sta cercando
o setwd(“C:/…”) per cambiare percorso.
o Oppure in alto vado in session -> set working directory -> choose directory e
o scelgo la cartella in cui è contenuto il file
read.table(“nomefile.txt”) legge il file e se lo faccio andare stampa a video il
o contenuto del file
x=read.table(“… .txt”, header=TRUE) toglie la prima riga di intestazione
o head(x) stampa le prima sei righe del file
o
IFELSE:
xes. Giudizi=c(1,2,3,4,5,6,7,8,9), giudizi12=ifelse(giudizi<5, 1, 2) la variabile assume
modalità 1 se il giudizio è <5, altrimenti 2.
Ifelse(test, yes, no) yes quanto il test è TRUE, no quando è FALSE.
PROBABILITA’: sample(x, size, replace, prob)
x variabile
o size: quanti esperimenti
o replace= TRUE estrazione con reinserimento, FALSE senza reinserimento (di default)
o
CICLO FOR:
for (i in range){
condizioni
qualcosa[i]
}
FUNZIONI: func=function(z)cosa.fa.la.funzione
z è la variabile della funzione
- Risolvere un problema di matematica
- Riassumere un testo
- Tradurre una frase
- E molto altro ancora...
Per termini, condizioni e privacy, visita la relativa pagina.