Problema Software R statistica aiuto importante
ciao a tutti, sono nuovo vorrei porvi una domanda spero che siate in grado di rispondermi.
Spero di essere nella sezione giusta
Tramite il software R sto facendo un progetto scolastico.
Alcune cose sono riuscito a farle con più o meno difficoltà. però adesso sono ad un punto morto.
Ho bisogno del vostro aiuto.
Ho un foglio txt del genere:
inter 199 attacco
milan 178 attacco
juventus 175 attacco
roma 200 difesa
roma 199 difesa
roma 187 difesa
roma 186 difesa
roma 185 difesa
Sono riuscito a ottenere la media dell'altezza dei giocatori della roma:
mean(altezze$squadra=="roma")
adesso vorrei fare:
1)la media dell'altezza dei giocatori della roma in base al ruolo
( per esempio media dell'altezza dei difensori)
2)
Vedere le frequenze delle altezze dei giocatori della roma in base al ruolo ricoperto.
Ciò lo so fare solo se si tratta indifferentemente x squadre o posizioni(cioè totale)..
In tal caso faccio nel seguente modo:
fisso in 20 il numero di classi da prendere iin considerazione e di consegnuenza
in 2 l'ampiezza di ciascuna classe
ampiezza.classi<-(200-160)/20
cosi l'ampiezza delle classi è 2 cm
ampiezza.classi--> numero classi
> classi<- 160+ampiezza.classi*(0:20)
> classi
[1] 160 162 164 166 168 170 172 174 176 178 180 182 184 186 188 190 192 194 196 198 200
cut(altezza,breaks=classi)
table(cut(altezza,breaks=classi))/length(altezza)
Vorrei dunque essere in grado di fare ciò scegliendo la sqadra e le posioni dei giocatori.
grazie mille
Spero di essere nella sezione giusta
Tramite il software R sto facendo un progetto scolastico.
Alcune cose sono riuscito a farle con più o meno difficoltà. però adesso sono ad un punto morto.
Ho bisogno del vostro aiuto.
Ho un foglio txt del genere:
inter 199 attacco
milan 178 attacco
juventus 175 attacco
roma 200 difesa
roma 199 difesa
roma 187 difesa
roma 186 difesa
roma 185 difesa
Sono riuscito a ottenere la media dell'altezza dei giocatori della roma:
mean(altezze$squadra=="roma")
adesso vorrei fare:
1)la media dell'altezza dei giocatori della roma in base al ruolo
( per esempio media dell'altezza dei difensori)
2)
Vedere le frequenze delle altezze dei giocatori della roma in base al ruolo ricoperto.
Ciò lo so fare solo se si tratta indifferentemente x squadre o posizioni(cioè totale)..
In tal caso faccio nel seguente modo:
fisso in 20 il numero di classi da prendere iin considerazione e di consegnuenza
in 2 l'ampiezza di ciascuna classe
ampiezza.classi<-(200-160)/20
cosi l'ampiezza delle classi è 2 cm
ampiezza.classi--> numero classi
> classi<- 160+ampiezza.classi*(0:20)
> classi
[1] 160 162 164 166 168 170 172 174 176 178 180 182 184 186 188 190 192 194 196 198 200
cut(altezza,breaks=classi)
table(cut(altezza,breaks=classi))/length(altezza)
Vorrei dunque essere in grado di fare ciò scegliendo la sqadra e le posioni dei giocatori.
grazie mille

Risposte
vorrei dunque vedere le frequenze (in base alla squadra e al ruolo ) dei giocatori associate alle classi di altezza.
Innanzitutto ti ringrazio, sei stato molto gentile 
sei stato preciso e ho capito tutto !
volevo chiederti un'ultima cosa..
Adesso sarei interessato ad ottenere le statistiche per tutte di tutte le squadre. c'è un modo per far "ciclare" in modo da ottenere queste informazioni per più squadre?
al momento ho visto che ci sono for e while però sono lontano dalla soluzione in quanto gli esempi che ho visto non usano stringhe ma numeri..
ricapitolando vorrei sapere se c'è un modo o un metodo per cui è possibile ottenere queste informazioni o inserendo manualmente tutte le squadre oppure in modo che capisca da solo quali squadre ci sono..lo so che può sembrare strana la richiesta però sono interessato ad ottenere le informazioni per circa 2000 squadre..e così è un pò complicato.. ti ringrazio anticipatamente

sei stato preciso e ho capito tutto !

volevo chiederti un'ultima cosa..
Adesso sarei interessato ad ottenere le statistiche per tutte di tutte le squadre. c'è un modo per far "ciclare" in modo da ottenere queste informazioni per più squadre?
al momento ho visto che ci sono for e while però sono lontano dalla soluzione in quanto gli esempi che ho visto non usano stringhe ma numeri..
ricapitolando vorrei sapere se c'è un modo o un metodo per cui è possibile ottenere queste informazioni o inserendo manualmente tutte le squadre oppure in modo che capisca da solo quali squadre ci sono..lo so che può sembrare strana la richiesta però sono interessato ad ottenere le informazioni per circa 2000 squadre..e così è un pò complicato.. ti ringrazio anticipatamente

Grazie ancora per la celere risposta!
ipotizziamo di avere su un foglio txt queste informazioni:
squadra altezza ruolo
inter 199 attacco
milan 178 attacco
juventus 175 attacco
roma 200 difesa
roma 199 difesa
roma 187 difesa
roma 186 attacco
Da ciò che ho capito, concatenando nel seguente modo:
come risultato ottengo:
nome attacco difesa
1 inter NA NA
2 milan NA NA
3 juventus NA NA
4 roma 186 199
5 roma NA 187
#senza la quinta riga che non capisco da dove mi esce
io vorrei ottenere:
nome attacco difesa
1 inter 199 NA
2 milan 178 NA
3 juventus 175 NA
4 roma 186 195,3
# nella prima colonna la media delle altezze dell'attacco per ogni squadra, nella seconda la media delle altezze della difesa per ogni squadra.
#Siccome avrò 4 ruoli in totale :"attacco,difesa,centrocampo,portiere" e svariate squadre vorrei avere una formula che mi consenta di fare ciò.
è possibile stampare anche un'altra tabella con vicino le frequenze del tipo (es):
161 163 165 167 169 171 173 175 177 179 181 183 185 187 189 191 193 195 197
milan 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1
inter 0 0 0 2 0 0 0 0 5 0 0 1 0 0 0 0 0 1 2
juventus 0 0 2 2 0 0 0 0 1 0 0 1 3 0 0 0 0 1 0
(sarebbero allineati ma nn riesco..)
Grazie mille ti sono molto grato per la tua gentilezza
ipotizziamo di avere su un foglio txt queste informazioni:
squadra altezza ruolo
inter 199 attacco
milan 178 attacco
juventus 175 attacco
roma 200 difesa
roma 199 difesa
roma 187 difesa
roma 186 attacco
Da ciò che ho capito, concatenando nel seguente modo:
squadra<- c( "inter", "milan" ,"juventus"," roma" ," roma", "roma"," roma") altezza<- c(199, 178, 175 , 200, 199 ,187 ,186) ruolo <- c("attacco" ,"attacco " ,"attacco ","difesa "," difesa", " difesa", " attacco") dati <- data.frame(squadra,altezza,ruolo) # questa istruzione posso saltarla se dichiaro le tre istruzioni sopra? nome.squadra <- unique(dati$squadra) nome <- c() attacco <- c() difesa <- c() for (s in nome.squadra) { temp <- by(dati[dati$squadra==s,"altezza"], dati[dati$squadra==s,"ruolo"], mean) ; nome <- c(nome, s) ; attacco <- c(attacco, temp[1]); difesa <- c(difesa, temp[2]) } medie <- data.frame(nome,attacco,difesa) medie
come risultato ottengo:
nome attacco difesa
1 inter NA NA
2 milan NA NA
3 juventus NA NA
4 roma 186 199
5 roma NA 187
#senza la quinta riga che non capisco da dove mi esce
io vorrei ottenere:
nome attacco difesa
1 inter 199 NA
2 milan 178 NA
3 juventus 175 NA
4 roma 186 195,3
# nella prima colonna la media delle altezze dell'attacco per ogni squadra, nella seconda la media delle altezze della difesa per ogni squadra.
#Siccome avrò 4 ruoli in totale :"attacco,difesa,centrocampo,portiere" e svariate squadre vorrei avere una formula che mi consenta di fare ciò.
è possibile stampare anche un'altra tabella con vicino le frequenze del tipo (es):
161 163 165 167 169 171 173 175 177 179 181 183 185 187 189 191 193 195 197
milan 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1
inter 0 0 0 2 0 0 0 0 5 0 0 1 0 0 0 0 0 1 2
juventus 0 0 2 2 0 0 0 0 1 0 0 1 3 0 0 0 0 1 0
(sarebbero allineati ma nn riesco..)
Grazie mille ti sono molto grato per la tua gentilezza
Grazie ancora, senza di te non so proprio come farei ..
la parte iniziale sei stato molto esaustivo e, per colpa dei miei errori, anche ingenui, mi ero bloccato..
tutto fila liscio tranne quando arrivo a questo punto:
e ottengo questo errore:
fino a qui tutto ok:
ho provato a modificare l'iterazione ma ho sempre problemi, ho realizzato (qui mi blocco):
e da qui mi blocco e non riesco più ad andare avanti..non riuscendo a fare il ciclo bene nelle istuzioni successive ottengo:
grazie infinitamente per la tua pazienza.. ti chiedo se puoi illustrarmi per bene i punti che non mi sono chiari..
la parte iniziale sei stato molto esaustivo e, per colpa dei miei errori, anche ingenui, mi ero bloccato..
tutto fila liscio tranne quando arrivo a questo punto:
for (s in nome.squadra) { h <- hist(dati[dati$squadra==s,"altezza"],breaks=n.classi,plot=FALSE); nome <- c(nome.squadra, s);m <- rbind(m, h$counts);}
e ottengo questo errore:
Warning message: In rbind(m, h$counts) : number of columns of result is not a multiple of vector length (arg 2)
fino a qui tutto ok:
limiti.classi <- seq(160, 200, by=2) n.classi <- length(limiti.classi) - 1 # numero delle classi m <- matrix(ncol=n.classi) # creazione matrice vuota . NB: prima riga tutti NA. squadra<- c( "inter", "milan" ,"juventus","roma" ,"roma", "roma","roma","parma","parma","roma","roma") altezza<- c(199, 178, 175 , 200, 199 ,187 ,186,250,300,1,15) ruolo <- c("attacco" , "attacco", "attacco" ,"difesa","difesa", "difesa", "attacco","portiere","portiere","centrocampo","centrocampo") dati <- data.frame(squadra,altezza,ruolo) nome.squadra <- unique(dati$squadra)
ho provato a modificare l'iterazione ma ho sempre problemi, ho realizzato (qui mi blocco):
for (s in nome.squadra) { h <- hist(dati[dati$squadra==s,"altezza"],breaks=n.classi,plot=FALSE); nome <- c(nome.squadra, s); h$mids;m <- rbind(nome,h$mids, h$counts);}
e da qui mi blocco e non riesco più ad andare avanti..non riuscendo a fare il ciclo bene nelle istuzioni successive ottengo:
frequenze <- data.frame(nome, m[-1,]) # non considera la prima riga di m Errore in data.frame(nome, m[-1, ]) : gli argomenti hanno un numero diverso di righe: 6, 7
grazie infinitamente per la tua pazienza.. ti chiedo se puoi illustrarmi per bene i punti che non mi sono chiari..
Grazie Sergio, sei stato davvero disponibile e utilissimo per i consigli che mi hai dato.
Per te nutro profondo rispetto e gratitudine!
ti auguro buon natale e feste serene..
grazie ancora, per essere stata la prima volta ad aver utilizzato matematicamente sono pienamente soddisfatto !
Sicuramente parlerò bene del forum ai miei amici e compagni! a presto
Per te nutro profondo rispetto e gratitudine!
ti auguro buon natale e feste serene..
grazie ancora, per essere stata la prima volta ad aver utilizzato matematicamente sono pienamente soddisfatto !

Sicuramente parlerò bene del forum ai miei amici e compagni! a presto
