Archivi per la categoria: R

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

    }
Annunci

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

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.

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.

Da tempo sono affascinato dai sistemi di visualizzazione dei dati e sono alla ricerca di strumenti software che permettano a “umili” statistici con il pallino della grafica, di darsi un po’ da fare in tal senso.
E’ quindi con piacere che ho visto che, anche chi usa R, ora può mappare le connessioni tra punti spaziali diversi. Ai seguenti link si trovano infatti le istruzioni per disegnare delle connessioni “geografiche” molto belle a vedersi!
Leggi il seguito di questo post »

Sembra proprio che ggplot2 sia un package mai più senza…ecco un paio di applicazioni che ne espandono le potenzialità: