Mam zestaw danych wyników meczów piłki nożnej i mam nadzieję nauczyć się R, tworząc działający zestaw ocen podobnych do formuły World Football Elo. Używam kłopoty z rzeczy, które wydają się być prosty w programie Excel nie są dokładnie intuicyjny w R. Na przykład, pierwszy 15 z 4270 obserwacji z niezbędnych zmiennych:Tworzenie zmiennej zliczającej w 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
Chcę być w stanie stworzyć nową zmienną, która będzie liczoną liczbą pełnych dopasowań t.1 i t.2 (tzn. instancje do danej daty, w której występuje "DC" w kolumnach t.1 lub 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
Excel, to jest (stosunkowo) prosty = równanie SUMA.ILOCZYNÓW, np
E4=SUMPRODUCT((A:A<=A4)*(B:B=B4))+SUMPRODUCT((A:A<=A4)*(C:C=B4))
gdzie E4 jest t.1m dla obs # 4, A: jest data, B: B jest t.1, C: C jest t.2 itp
Ale w R, można uzyskać całkowity sumproduct wydrukowano dla mnie (np "DC" rozegrał 576 gier w moim zestawie danych), ale z jakiegoś powodu (prawdopodobnie, że jestem nowy, niecierpliwy, wstrząśnięty próbą i błędem) po prostu straciłem umiejętność liczenia danych obserwacyjnych, a zwłaszcza jak sprawić, aby to działanie było zliczane w zmiennej, która jest niezbędna dla każdego indeksu rankingu gier. Wiem, że istnieje "PlayerRatings", czuję, że dla mojego wykształcenia R powinienem móc to zrobić w pakiecie R bez tego pakietu. Oczywiście plyr lub dplyr są w porządku.
Dla porównania, tutaj jest moje dane, aby skopiować/wkleić do swojej 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
pokrewne [Uruchamianie Ilość podstawie polu R] (http://stackoverflow.com/q/31259932/452096) . Ta dała odpowiedzi, które przebiegały o wiele szybciej w moim dużym problemie niż zaakceptowana odpowiedź poniżej. –