State creando un loop, ma l’output di ogni ciclo è un po’ “complesso”. Insoma, non lo potete mettere in una matrice, o in un vettore…e allora cosa c’è di meglio che creare una lista ed inserirlo li?

lista.mod <- vector('list', length(lista))

for (i in 1:n){
    
    lista.mod[[i]] <- ARG

    }

R è un buonissimo programma per la grafica. Date le sue ampie possibilità di customizzazione è effettivamente possibile fare grafici praticamente di qualunque tipo.
Di seguito riporto il codice per fare grafici semplici, pronti per la stampa.

FIGURA 1

data(mtcars)
attach(mtcars)
plot(mpg, hp, xlab ='Asse delle X', ylab = 'Asse delle Y',
     xaxt="n", yaxt="n", mgp=c(2.5, 1, 0), cex.lab = 1, type = 'n')
axis(1, at=seq(0,35,5), lwd = 0, lwd.ticks = 1, tcl = 0.2, cex.axis=1,
     mgp=c(1.5, 0.5, 0))
axis(2, at=seq(50,350,50), lwd = 0, lwd.ticks = 1, tcl = 0.2, cex.axis=1, las = 2, 
     mgp=c(1.5, 0.5, 0))
points(mpg, hp, cex=0.8, pch=as.numeric(as.factor(cyl)))
abline(v=15, h=100, col='grey', lty = 2)
legend('topright', legend = c('4 cyl', '6 cyl', '8 cyl'),
       pch = 1:3, bty = 'n')
dettach(mtcars)

Created by Pretty R at inside-R.org

fig1

FIGURA 2

require(pls)
data(gasoline)
plot(seq(900, 1700, 2), gasoline$NIR[1,], type='l', xaxt='n', yaxt='n', 
     xlab='Wavenumber', ylab='Absorbance', lwd = 0.5, cex.lab=0.8,
     main = 'NIR spectra 1', cex.main=0.9,
     col='black', mgp=c(2.5, 1, 0))
axis(1, at=seq(900, 1700, 50), labels = seq(900, 1700, 50), lwd = 0, lwd.ticks = 1, tcl = 0.2, cex.axis=0.8)
axis(2, at=seq(0, 1.5, 0.20), lwd = 0, lwd.ticks = 1, tcl = 0.2, cex.axis=0.8, las= 1)
grid(col = "lightgray", lty = "dotted", lwd =1)

fig2

Created by Pretty R at inside-R.org

try è una utilissima funzione, da utilizzare specialmente nei loop (apply, by, quelli del package plyr,…) per evitare che si blocchino a causa di un calcolo che non avviene nel modo corretto. Supponiamo ad esempio che dobbiate fare una regressione non lineare, in questo caso può accadere che, se gli starting point non sono adeguati, il comando non vada a buon fine e che si interrompa il loop….con tutti i problemi del caso.
ecco che utilizzando la funzione try() è possibile gestire l’errore e dare alla funzione una via di uscita, da percorrere in caso di problemi, senza che si interrompa il ciclo.
in generale il codice da usare è il seguente:

RISULTATO <- try(FUNZIONE_CHE_PUO_FALLIRE, silent=T)
if (class(RISULTATO)=="try-error"){
COND1
} else {
COND2
}

Created by Pretty R at inside-R.org

potete trovare un esempio ed ulteriori informazioni qui BIOCODENV BLOG e qui WORKING WITH DATA

ciao a tutti, da oggi è nato un gruppo di lavoro sull’uso di R in chemiometria. Invito chiunque fosse interessato a partecipare (o fosse anche solo curioso) ad andare su questa pagina. Il gruppo fa parte del Gruppo di Chemiometria della Divisione di Chimica Analitica della Società Chimica Italiana.

L’ingenuo utilizzatore di R, magari un chimico (come me) o un biologo…o qualcos’altro, potrebbe essere portato a pensare che R sia scritto in R…ed invece no, o meglio, si, ma non del tutto. Come si vede in questi due simpatici post nel blog di librestats, sia il core di R, sia i contributed packages sono scritti in gran parte in C/C++ !!!

In questo post, Correlation Resources: SPSS, R, Causality, Interpretation and APA Style Reporting, scritto da Jeromy Anglim, ci fornisce numerosi collegamenti a risorse relative all’uso e all’interpretazione della correlazione e del rapporto causa-effetto e ci aiuta a gettare un po’ di luce sull’argomento.

In questo interessante post, Getting to know multivariate data, J.S.A. Bridgewater ci mostra come visualizzare dati multivariati. Passaggio molto utile non solo nella preparazione all’analisi multivariata vera e propria, ma anche per controllare, verificare e rendere più comprensibili i risultati che si ottengono.

Robert Gentleman ci spiega come fare delle bellissime word cloud utilizzando R, con un package rilasciato da poco da Ian Fellow che, guarda caso, si chiama proprio wordcloud.

Non è R ma è statistica. Quindi comunque può interessare…sono le relazioni che legano le distribuzioni ed il tutto è raccolto in un simpatico ed utile diagramma cliccabile.

Forse vi sarete chiesti di quanti “vocaboli” (ovvero funzioni) disponga R…be, sono diverse migliaia, per l’esattezza 2382.
Ma quante sono poi quelle effettivamente utili? quelle che andrebbero sapute per forza? Hadley Wickham dice 350. L’elenco lo trovate qui.