IngForum il forum di Ingegneri.info
Oggi è mercoledì 3 giugno 2020, 5:21

Tutti gli orari sono UTC + 1 ora [ ora legale ]




Apri un nuovo argomento Rispondi all’argomento  [ 1 messaggio ] 
Autore Messaggio
MessaggioInviato: lunedì 20 aprile 2020, 16:31 
Non connesso

Iscritto il: sabato 6 agosto 2016, 20:39
Messaggi: 17
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? :(


Top
 Profilo  
Rispondi citando  
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 1 messaggio ] 

Tutti gli orari sono UTC + 1 ora [ ora legale ]


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi

Cerca per:
Vai a:  

POWERED_BY
Traduzione Italiana phpBB.it