IngForum
http://www.ingegneri.info/forum/

Rstudio: problema creazione di matrice da dataframe
http://www.ingegneri.info/forum/viewtopic.php?f=10&t=111419
Pagina 1 di 1

Autore:  martiki [ lunedì 20 aprile 2020, 16:31 ]
Oggetto del messaggio:  Rstudio: problema creazione di matrice da dataframe

Ciao a tutti, sono una novellina del linguaggio R.
Scrivo perché ho un problema che non riesco proprio a risolvere: a partire da un dataframe di due colonne A, contenente i miei dati iniziali, dovrei creare un oggetto (non importa la natura, va bene che sia un vettore, una matrice nx1 o un dataframe a 1 colonna) contenente la somma degli elementi A che soddisfano una condizione specificata da me. tutto ciò mi servirà in seguito per effettuare delle statistiche.

Vi riporto il mio semplice codice e il mio data frame iniziale A:
i dbz
0.1 10
0.2 30
0.3 20
0.4 54
0.5 69
0.6 74
0.1 33
0.2 15
0.3 60

Codice:

Codice:
i<-c(0.1,0.2,0.3,0.4,0.5,0.6,0.1,0.2,0.3)
dbz<-c(10,30,20,54,69,74,33,15,60)
A<-data.frame(i,dbz)
classi<-seq(from=min(A$i), to=max(A$i), by=0.1) #classi va da 0.1 a 0.6
M<-matrix(nrow=length(classi),ncol=1)
a<-seq(0.1,0.6,0.1)
m<-1

#conto quanti elementi uguali al valore j ci sono nella prima colonna di A
for (j in a)
{M[m,1]<-length(A$i[A$i==j])
m<-m+1 }

M risulta così
[,1]
[1,] 2
[2,] 2
[3,] 0
[4,] 1
[5,] 1
[6,] 1


Come vedete il problema di presenta quando j=0.3, perché invece di restituirmi “2” sembra non riconoscere i valori pari a questo numero appartenenti alla prima colonna di A, restituendomi quindi 0. Gli altri valori invece sono tutti giusti!

Se invece nella console e fuori dal ciclo digito A$i[A$i==”0.3″] mi restituisce 2 senza problemi.

Infine, se il ciclo for lo faccio girare per valori di j che vanno da 0.1 a 0.3 la matrice M (fino al valore in posizione 3) viene corretta!

Qualcuno può aiutarmi? :(

Pagina 1 di 1 Tutti gli orari sono UTC + 1 ora [ ora legale ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/