Autore |
Discussione |
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 05 luglio 2009 : 17:25:30
|
ciao a tutti, devo fare una regressione lineare tra univariata. Ho utilizzato il comando lm ma ottengo il seguente errore
fm<-lm(jv_dv ~ jv_ab) Errore in model.frame.default(formula = jdv_dv ~ jdv_ay, drop.unused.levels = TRUE) : invalid type (list) for variable 'jdv_dv'
i dati in orgine è una colonna di numeri, in cui non è presente alcuna riga vuota o elementi non numerici
|
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
Inserito il - 05 luglio 2009 : 17:51:06
|
Citazione: i dati in orgine è una colonna di numeri,
Sì, ma è probabilmente una lista, infatti ti dice: > invalid type (list) for variable 'jdv_dv' <
Prova a convertirlo in vettore usando as.vector
es: jdv_dv = as.vector(jdv_dv)
In alternativa puoi usare una lista o un data frame contenente le 2 colonne (jdv_dv e jdv_ay) e poi passarla a lm come data. Ad es:
jdv = data.frame(dv=jdv_dv, ay=jdv_ay)
res = lm(formula=dv~ay, data=jdv)
|
Sei un nuovo arrivato? Leggi il regolamento del forum e presentati qui
My photo portfolio (now on G+!) |
|
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 05 luglio 2009 : 21:05:41
|
ti ringrazio. Ho risolto, grazie mille. Ciao |
|
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 06 luglio 2009 : 14:25:25
|
sai per caso dirmi se in R c'è l'equivalente dell'hold on in matlab? Vorrei sovrappore due andamenti ma ogni volta che richiamo il comando plot mi ridisegna totalmente il grafico |
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
Inserito il - 06 luglio 2009 : 15:38:01
|
Dipende un po' dal grafico che stai facendo. Se sono grafici xy usa points.
Ad es:
x = seq(1, 10, 0.01)
y1 = sin(x)
y2 = cos(x)
plot(x, y1, "l", col="red")
points(x,y2, "l", col="blue")
|
Sei un nuovo arrivato? Leggi il regolamento del forum e presentati qui
My photo portfolio (now on G+!) |
|
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 06 luglio 2009 : 15:46:15
|
grazie mille, è proprio quello di cui avevo bisogno |
|
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 08 luglio 2009 : 15:20:08
|
invece mi sapresti dire come faccio a conoscere l'indice del valore massimo all'interno di un array? I pratica ho bisogno dell'equivalente del comando find in Matlab ed octave. Grazie |
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
Inserito il - 08 luglio 2009 : 15:59:24
|
Ci sono 3 funzioni chiamate which, which.min e which.max Ad es:
> a = c(2,5,6,3,4,22,1)
> which.min(a)
[1] 7
> which.max(a)
[1] 6
> which(a==6)
[1] 3
> which(a<3)
[1] 1 7
|
Sei un nuovo arrivato? Leggi il regolamento del forum e presentati qui
My photo portfolio (now on G+!) |
|
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 10 luglio 2009 : 12:10:06
|
grazie mille, Chick ne sai a pacchi :)
|
|
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 10 luglio 2009 : 13:45:49
|
ho ancora una domanda da farti, ho un grafico xy, dove nell'ascissa devo mettere dei valori contenuti nella prima colonna di una matrice, mentre in y devo mettere i valori contenuti nella seconda colonna della stessa matrice. La matrice in oggetto ha solo due colonne. Dal grafico vorrei identificare l'indice di un certo elemento cliccato. Non sò come utilizzare il comando identify, ho provato scrivendo:
plot(dati[,1],dati[,2]) identify(1:length(dati[,1]),dati[,1])
ma mi dice che non riesce a trovare alcun punto. |
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
Inserito il - 10 luglio 2009 : 15:20:37
|
Identify ti restituisce gli indici del punto che hai cliccato.
Ad es:
a = seq(1, 10, 0.5)
b = a * a
plot(a, b, "b", pch=20)
identify(a, b)
Qui ogni volta che fai un click con il tasto sx ti scriverà sul grafico l'indice del punto più vicino, fino a quando non fai un click destro. A quel punto la funzione ti restituirà un array con gli indici. Alternativamente puoi anche passare il parametro n per limitare il numero di punti da identificare.
Es: identify(a,b,n=5) ti farà scegliere 5 punti
Altro parametro interessante che gli puoi passare è labels, che determina cosa scrivere sul grafico.
Ad es. questo scriverà la y identify(a,b,labels=b)
Nota che comunque identify restituisce SEMPRE gli indici, non importa cosa tu metti in labels
Se non vuoi scrivere niente sul grafico passa plot=0 oppure labels=""
|
Sei un nuovo arrivato? Leggi il regolamento del forum e presentati qui
My photo portfolio (now on G+!) |
|
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 10 luglio 2009 : 16:15:12
|
grazie ancora chick. Mi sei stato utilissimo. Ciao |
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 13 luglio 2009 : 15:21:32
|
sono qui di nuovo a porti una domanda. Devo fare dei grafici con R in cui gli i thick axis e le etichette degli assi abbiano il font Arial, grandezza 8 e che il grafico abbia una certa dimensione preffissata. Ho visto le opzioni font.cex o font.lab ma non vanno bene nel mio caso. |
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
Inserito il - 13 luglio 2009 : 16:28:37
|
Allora, per la dimensione prefissata io in genere esporto direttamente in pdf usando il comando 'pdf'
Es:
pdf("test.pdf", width=4, height=4) # Nota che width e height sono in pollici!
plot(...)
...
...
dev.off() # Questo comando è indispensabile per finalizzare il PDF. Se non lo chiami avrai un PDF vuoto!!!
Per quanto riguarda il font è un po' OS specifico se non erro. Parliamo di Windows, Linux o MacOS?
Sotto windows CREDO che font=1 sia Arial Oppure pdf accetta un parametro family.
Sinceramente non ci ho mai giocato... prova a dare un occhio su R-help http://www.nabble.com/R-help-f13820.html |
Sei un nuovo arrivato? Leggi il regolamento del forum e presentati qui
My photo portfolio (now on G+!) |
|
|
dallolio_gm
Moderatore
Prov.: Bo!
Città: Barcelona/Bologna
2445 Messaggi |
Inserito il - 13 luglio 2009 : 20:53:08
|
a me piace molto una libreria chiamata ggplot2, rende molto piu' facile generare grafici di qualitá, ed inoltre permette di salvare un grafico giá plottato con la funzione ggsave().
Se avete domande su R, non abbiate paura ad aprire nuovi topic... altrimenti si creerá una discussione gigante con consigli molto utili, ma confusi...
|
Il mio blog di bioinformatics (inglese): BioinfoBlog Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-) |
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 13 luglio 2009 : 22:20:51
|
Grazie mille, per ora anche lì non mi hanno saputo dare una risposta. Aspetterò |
|
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 05 marzo 2010 : 14:32:25
|
rieccomi a chiedervi nuovamente una cosa su r. Dopo 6 mesi che non lo uso non mi ricordo più nulla. Ma come si fà ad avere l'elenco delle variabili nel workspace? |
|
|
kORdA
Utente Attivo
Prov.: Milano
Città: Monza
1303 Messaggi |
Inserito il - 05 marzo 2010 : 14:38:53
|
Citazione: Messaggio inserito da serbring
rieccomi a chiedervi nuovamente una cosa su r. Dopo 6 mesi che non lo uso non mi ricordo più nulla. Ma come si fà ad avere l'elenco delle variabili nel workspace?
La funzione è.... ls() |
http://www.linkedin.com/in/dariocorrada |
|
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 05 marzo 2010 : 17:48:14
|
cavolo mi ricordavo ls, ma non mi ricordavo le (). Grazie |
|
|
|
Discussione |
|