Ho un set di dati dei risultati delle partite di calcio, e spero di imparare R creando un set di rating in corso simile alla formula World Football Elo. Sono in esecuzione nei guai con le cose che sembrano essere semplice in Excel non sono esattamente intuitivo in R. Per esempio, il primo 15 di 4270 osservazioni con le variabili necessarie:Creazione di una variabile di conteggio in esecuzione in R?
date t.1 t.2 m.result
1 19960406 DC SJ 0.0
2 19960413 COL KC 0.0
3 19960413 NE TB 0.0
4 19960413 CLB DC 1.0
5 19960413 LAG NYRB 1.0
6 19960414 FCD SJ 0.5
7 19960418 FCD KC 1.0
8 19960420 NE NYRB 1.0
9 19960420 DC LAG 0.0
10 19960420 CLB TB 0.0
11 19960421 COL FCD 1.0
12 19960421 SJ KC 0.5
13 19960427 CLB NYRB 1.0
14 19960427 DC NE 0.5
15 19960428 FCD TB 1.0
Voglio essere in grado di creare una nuova variabile che sarà un conteggio delle partite totali giocate da t.1 e t.2 giocate (cioè le istanze fino alla data in questione che "DC" si verifica nelle colonne t.1 o t.2):
date t.1 t.2 m.result ##t.1m ##t.2m
1 19960406 DC SJ 0.0 1 1
2 19960413 COL KC 0.0 1 1
3 19960413 NE TB 0.0 1 1
4 19960413 CLB DC 1.0 1 2
5 19960413 LAG NYRB 1.0 1 1
6 19960414 FCD SJ 0.5 1 2
7 19960418 FCD KC 1.0 2 2
8 19960420 NE NYRB 1.0 2 2
9 19960420 DC LAG 0.0 3 2
10 19960420 CLB TB 0.0 2 2
11 19960421 COL FCD 1.0 2 3
12 19960421 SJ KC 0.5 3 3
13 19960427 CLB NYRB 1.0 3 3
14 19960427 DC NE 0.5 4 3
15 19960428 FCD TB 1.0 4 3
in Excel, questo è un (relativamente) semplice equazione = SUMPRODUCT, ad esempio:
E4=SUMPRODUCT((A:A<=A4)*(B:B=B4))+SUMPRODUCT((A:A<=A4)*(C:C=B4))
dove E4 è t.1m per oss # 4, A: A è data, B: B è t.1, C: C è T.2, ecc
Ma in R, posso ottenere totale sumproduct stampato per me (es "DC" ha giocato 576 giochi attraverso il mio set di dati), ma per qualche ragione (probabilmente sono nuovo, impaziente, sbalordito da prove ed errori) mi sono perso su come fare un conteggio in esecuzione sui dati di osservazione, e specialmente come rendere quel conteggio progressivo in una variabile, che è vitale per qualsiasi indice di valutazione del gioco. So che "PlayerRatings" esiste, credo che per la mia educazione R dovrei essere in grado di farlo nella suite R senza quel pacchetto. plyr o dplyr va bene, certo.
Per riferimento, ecco i miei dati per copiare/incollare nel vostro R.
date<-c(19960406,19960413,19960413,19960413,19960413,19960414,19960418,19960420,19960420,19960420,19960421,19960421,19960427,19960427,19960428)
t.1<-c("DC","COL","NE","CLB","LAG","FCD","FCD","NE","DC","CLB","COL","SJ","CLB","DC","FCD")
t.2<-c("SJ","KC","TB","DC","NYRB","SJ","KC","NYRB","LAG","TB","FCD","KC","NYRB","NE","TB")
m.result<-c(0.0,0.0,0.0,1.0,1.0,0.5,1.0,1.0,0.0,0.0,1.0,0.5,1.0,0.5,1.0)
mtable<-data.frame(date,t.1,t.2,m.result)
mtable
correlati: [conteggio parziale in base al campo in R] (http://stackoverflow.com/q/31259932/452096) . Quella diede risposte che funzionavano molto più velocemente sul mio grosso problema rispetto alla risposta accettata sotto. –