COMANDI R PER INDICI UNIVARIATI E BIVARIATI E SCATTERPLOT - PARTE 1
Consideriamo i dati del file cicala.txt.
1. Lettura dati
cicale=read.table("C:/c-rogantin/DATI/cicala.txt",header =T,nrows=104,row.names=1, sep=";",dec=",",na.strings="999")
### Assegnazione nuovi nomi alle variabili e visualizzazione struttura dataset colnames(cicale)=c("peso","lungh_ali","largh_ali","lungh_corpo","genere","specie") attach(cicale)
2. Indici univariati, anche in presenza di valori mancanti
mean(peso) [1] 0.1799038
mean(largh_ali) #### largh_ali contiene valori mancanti [1] NA
mean(largh_ali,na.rm=T) [1] 11.09709
sd(largh_ali,na.rm=T) [1] 1.052677
cv=sd(largh_ali,na.rm=T)/mean(largh_ali,na.rm=T)*100; cv [1] 9.486065
var(largh_ali,na.rm=T) [1] 1.108129
fivenum(largh_ali) ##### la rimozione dei valori mancanti e‘ automatica [1] 9 10 11 12 15
3. Media totale e nei sottogruppi
media_peso_m=mean(peso[genere==" m"]) media_peso_f=mean(peso[genere==" f"])
freq_genere=prop.table(table(genere));freq_genere genere
f m
0.5673077 0.4326923
prop.table(table(genere))[2] ### si individua il secondo elemento del vettore freq_genere m
0.4326923
media_peso=media_peso_m*freq_genere[2]+media_peso_f*freq_genere[1]
media_peso m 0.1799038 mean(peso) [1] 0.1799038
4. Indici bivariati
cov(peso,lungh_ali) [1] NA
cov(peso,lungh_ali,na.rm=T)
Error in cov(peso, lungh_ali, na.rm = T) : unused argument (na.rm = T)
##### E‘ necessario rimuovere tutta l’unita‘ sperimantale con valori mancanti cicale2=na.omit(cicale)
detach(cicale) attach(cicale2) cov(peso,lungh_ali) [1] 0.07804698 cor(peso,lungh_ali) [1] 0.5775141
5. Scatterplot
plot(peso~lungh_ali,pch=19)
plot(lungh_ali,peso,pch=19) #### equivalente al precedente ATTENZIONE all’ordine delle variabili abline(v=mean(lungh_ali),h=mean(peso),col="red") ### aggiunta linee in corrispondenza del baricentro
1
22 24 26 28 30 32 34
0.100.150.200.250.300.350.40
lungh_ali
peso
22 24 26 28 30 32 34
0.100.150.200.250.300.350.40
lungh_ali
peso
COMANDI R PER INDICI BIVARIATI E SCATTERPLOT - PARTE 2
Consideriamo i dati del file pioppi.txt.
1. Lettura dati e costruzione dei fattori
pioppi=
read.table("http://www.dima.unige.it/~rogantin/IIT/pioppi.txt", header=T, sep="\t")
str(pioppi) attach(pioppi)
sito=factor(Sito, levels =c(1,2), labels=c("umido","secco") ) eta=ordered(Eta, levels =c(3,4), labels=c("3anni","4anni")) trattamento=factor(Trattamento, levels =1:4,
labels=c("contr","fertil","irrig","fertil+irrig"))
2. Scatterplot con indicazione del fattore
plot(Altezza~Diametro,pch=c(19,17,15,10)[trattamento], col=c("black","red", "blue","darkgreen")[trattamento])
legend("topleft",legend=c("contr","fertil","irrig","fertil+irrig"),pch=c(19,17,15,10), col=c("black","red", "blue","darkgreen"))
ATTENZIONE: la variabile fra parentesi quadre deve essere di tipo Factor (non importa se ordinale o no). Eventualmente prima controllare con il comando str, ad esempio str(trattamento).
plot(Altezza~Diametro,pch=c(19,17)[sito],col=c("red", "blue")[sito])
legend("topleft",legend=c("umido","secco"),pch=c(19,17),col=c("red","blue"))
plot(Altezza~Diametro,pch=c(19,17)[eta],col=c("red", "blue")[eta], cex.axis=1.5) legend("topleft",legend=c("3 anni","4 anni"),pch=c(19,17),col=c("red","blue"))
2 4 6 8
20406080100120
Diametro
Altezza
contr fertil irrig fertil+irrig
2 4 6 8
20406080100120
Diametro
Altezza
umido secco
2 4 6 8
20406080100120
Diametro
Altezza
3 anni 4 anni
3. Correlazione totale e nei sottogruppi
> cor(Altezza,Diametro) [1] 0.9412149
> sapply(split(pioppi, trattamento), function(X) cor(X$Altezza,X$Diametro))
contr fertil irrig fertil+irrig
0.9410929 0.9463105 0.9415708 0.9250480
> sapply(split(pioppi, sito), function(X) cor(X$Altezza,X$Diametro))
umido secco
0.9516743 0.9308748
> sapply(split(pioppi, eta), function(X) cor(X$Altezza,X$Diametro))
3anni 4anni
0.9384970 0.8064679