Sei sulla pagina 1di 3

script R studio

R1: distribuzione di frequenze


trasformo il file stud.new in un data.frame di R stud.new<-data.frame(stud.new)
Se non voglio mostrare tutto il data frame posso mostrare solo le prime sei righe: head(stud.new)
oppure le ultime sei righe: tail(stud.new)

Rendo vettori autonomi le singole colonne del data.frame stud.new attach(stud.new)

trattare in modo analogo i vettori (colonne) del data frame: dim(genere) head(genere) tail(genere)

x<-0:5 = [1:6] 0 1 2 3 4 5 y<-2:8 = [1:7] 2 3 4 5 6 7 8


freq.ass<-c(2,41,23,56,87,52) n<-sum(freq.ass) n=261

freq.rel <- round(freq.ass/n,2) freq.cum <- cumsum(freq.ass) freq.cum.rel<-round(freq.cum/n,2)


freq.rel<-freq.ass/sum(freq.ass) freq.cum<-cumsum(freq.ass) freq.cum.rel<freq.cum/sum(freq.ass)

distr<-cbind(x, freq.ass, freq.rel, freq.cum, freq.cum.rel) distr (fa la tabella di distribuzione)


amp<-Es-Ei dens<-round(freq.ass/amp,2)
cbind(Ei,Es, freq.ass, freq.rel, freq.cum, freq.cum.rel, amp, dens) (fa tabella distribuzione)

usiamo un dataset = data <- read.csv("MATH500_Questionnaire_Data.csv") str(data)


(tabella per capire chi fa sport sì o no) = table1<-table(data$Sport) table1
(tabella di prima con le frequenze relative) = prop.table(table1)
(tabella di prima percentuale) = prop.table(table1)*100
(tabella di prima in percentuale ridotta a due numeri decimali) = round(prop.table(table1)*100, 2)

marginali tabella 1 = margin.table(table1)

laboratorio in R first
vettore = my.vector <- c(18, 20, 19, 19)
matrice = my.matrix <- matrix(c(23, 22, 30, 24, 19, 26, 30, 30), nrow = 4, ncol = 2) cambiare nome alle colonne
= colnames(my.matrix) <- c("Stat", "Math") cambiare nome alle righe = rownames(my.matrix) <- c("Student1",
"Student2", "Student3", "Student4")

istogramma
(creare un istogramma, prima vettore, frequenza assoluta, b=a quante volte si sono ripetuti i numeri del vettore,
estremo superiore, istogramma) = altezza<-c(3,7,8,32,35,39,50,60) freq.ass<-c(1,6,4,9,12,2,7,8)
b<-rep(altezza,freq.ass) es<- c(4,1,24,3,4,11,10) hist(b,breaks = es ,xlab = "altezza", main =
"Istogramma") hist
ogiva
library(agricolae) data(growth) h<-graph.freq(growth$height,plot=FALSE) points<-
ogive.freq(h,col="red",frame=FALSE, xlab="Height", ylab="Freq cum rel", main="ogiva")

grafico a torta
require(MASS) table.smok<-table(survey$Smoke) cols<-c("darkblue","yellow","green","red")

labs<-c("Molto", "Mai", "Occasionalmente", "Regolarmente") pie(table.smok, main="Fumano",


labels=labs, col=cols)

se vogliamo aggiungere le percentuali = pct<-round((table.smok/margin.table(table.smok)*100),1)


lbls<-paste(pct,"%",sep="") pie(table.smok, main="Fumatori", labels = lbls, col=cols)

se vogliamo aggiungere la legenda = legend(0.9, 1.0, cex = 0.8, legend=labs, fill = cols)

R2
lettura file di un questionario = library(readr) citation("readr")

leggere i dati nel file = qd <- read_csv("MATH500_Questionnaire_Data.csv")

vedere la prima riga = head(qd) nome variabile o colonna = names(qd)

dimensioni = dim(qd) numero colonne = ncol(qd) numero righe = nrow(qd)

manipolazione di dati
manipolare i dati = library(dplyr) ricordiamoci delle variabili e delle colonne del dataframe = names(qd)

str(qd)

vedere determinate colonne o variabili = select(qd, Height, Travel_time)

si possono filtrare le righe in base a delle condizioni = filter(qd, Sex == "Male") == è un uguale logico

filter(qd, Sex == "Male" & Height > 170) uguale non logico

disposto in ordine di crescenza d’altezza = arrange(qd, Height)

ordine decrescente = arrange(qd, desc(Height))

selezionare delle modalità = select(qd2, Height, Age)

Possiamo definire una nuova variabile usando *mutate* definiamo Velocità come Distanza divisa per Travel_time
= qd3 <- mutate(qd, Velocità = Distanza / Tempo_di_percorso) qd3$Velocità

Rinominare una variabile = qd4 <- rename(qd3, s = Speed_mph)

Deviazione standard = summarise(qd, sd = sd(Height))

Media = summarise(qd, ave = mean(Height))

Statistica riassuntiva = summarise(qd, ave = mean(Height), sd = sd(Height))

Contare numero valori = count(qd, Sex)

Unione di due dataframe = a <- data_frame(x1 = c("A", "B", "C"), x2 = c(1, 2, 3)) b <- data_frame(x1 = c("A", "B",
"D"), x3 = c(4, 5, 6))

Unire le righe di b ad a = left_join(a, b, by = "x1") unire le righe di a ad b = right_join(a, b, by = "x1")


conserva solo le righe in entrambi i frame di dati = inner_join(a, b, by = "x1")

conserva tutti i valori e tutte le righe = full_join(a, b, by = "x1")

Modifica di dati larghi in dati lunghi = library(readr) wide <- read_csv("wide_data.csv") wide

names(wide)

calcolo indici
Packages <- c("readxl", "pastecs", "psych", "modeest","goeveg","ggplot2","viridis")

lapply(Packages, library, character.only = TRUE)

internet<- read_excel("internet.xlsx")

View(internet) mean(internet$timespenthour) median(internet$timespenthour)

range(internet$timespenthour) camp.var<-max(internet$timespenthour)-min(internet$timespenthour)

camp.var quantile(internet$timespenthour) IQR(internet$timespenthour) = distanza interquartilica

quantile(internet$timespenthour,c(0.33,0.45,0.95)) = percentili var(internet$timespenthour)

sd(internet$timespenthour) = deviazione standard cv(internet$timespenthour) = coefficiete di variazione

summary(internet$timespenthour) = fa tutto

creare un data frame


creiamo i vettori: sesso<c(“uomo”,”uomo”,”donna”,”donna”,”donna”) sesso
peso<-c(65,70,65,70,70) peso età<-c(40,40,40,27,30) età

si può creare un datafreme associando più vettori = eta.df<-data.frame(sesso,peso,età) età.df

per accedere alle colonne separatamente si può l’operatore $ = eta.df$sesso eta.df$peso eta.df$eta

si possono usare indici numerici = eta.df[,2] (consideriamo i valori della seconda colonna, senza considerare il
resto) eta.df[4,] (consideriamo i valori della quarta colonna, senza considerare il resto)
eta.df[2,2:3] (consideriamo i valori della seconda riga, dalla seconda alla terza colonna)

eta.df[4,2] = specificando sia la riga che la colonna si accede ad un solo dato

per selezionare solo alcune osservazioni(righe)ed eseguire analisi statistiche solo su una parte del datafreme =
eta.piu27.df<-subset(eta.df, eta>27) eta.piu27.df

Potrebbero piacerti anche