Манипуляции с датой в скачках - PullRequest
0 голосов
/ 27 мая 2020

Я все еще новичок в группе, и R. У меня есть действительно полезные отзывы по моему последнему запросу, поэтому я надеюсь, что смогу получить дополнительную поддержку со следующим:

За каждую гонку лошади дается рейтинг производительности и код, описывающий тип скачек, в котором участвовала лошадь. ie. Flat, Hurdles, Chase

Мой набор данных содержит данные о скачках за последние 6 гонок для 7 лошадей. Всего 42 спектакля. Я хотел бы удалить выступления, в которых код для рейтинга не равен C (где C - гонка через заборы).

Целые числа DaH - это оценки, присваиваемые лошади за ее выступления за каждая гонка, где DaH1 - это рейтинг самой последней гонки, а DaH6 - рейтинг шестой самой последней гонки.

У меня есть набор данных:

              Name Code1 DaH1 Code2 DaH2 Code3 DaH3 Code4 DaH4 Code5 DaH5 Code6 DaH6
1     MORTENS LEAM     C    0     C  124     C  121     C  107     C  129     C  127
2   FRANKIE BALLOU     C  124     C  117     C  119     C  115     C  119     C    0
3   MAXED OUT KING     C  121     C  125     C  123     C  125     C  119     C    0
4  CASUAL CAVALIER     C  123     C  120     C  119     C  119     C  108     C  124
5     WELL SMITTEN     C    0     C  125     H   82     C    0     C  118     C  122
6 ENVOL DE LA COUR     H  122     C    0     C    0     H  132     H  141     H  137
7    UN GUET APENS     C  110     H  115     C  123     C  122     C  130     H  127

Я хочу начать с удаления любые гоночные рейтинги (DaH), код которых не равен C. Как только я это сделаю, мне больше не понадобится ни один из столбцов кода. Затем я выполню некоторые базовые c вычисления, такие как максимальное, среднее и медианное значение.

Я попытался использовать melt для перенастройки фрейма данных, используя:

horse_data_changed <- melt(bob_horse, id.vars =c("Name"))

Giving:

               Name variable value
1      MORTENS LEAM    Code1     C
2    FRANKIE BALLOU    Code1     C
3    MAXED OUT KING    Code1     C
4   CASUAL CAVALIER    Code1     C
5      WELL SMITTEN    Code1     C
6  ENVOL DE LA COUR    Code1     H
7     UN GUET APENS    Code1     C
8      MORTENS LEAM     DaH1     0
9    FRANKIE BALLOU     DaH1   124
10   MAXED OUT KING     DaH1   121
11  CASUAL CAVALIER     DaH1   123
12     WELL SMITTEN     DaH1     0
13 ENVOL DE LA COUR     DaH1   122
14    UN GUET APENS     DaH1   110
15     MORTENS LEAM    Code2     C
16   FRANKIE BALLOU    Code2     C
17   MAXED OUT KING    Code2     C
18  CASUAL CAVALIER    Code2     C
19     WELL SMITTEN    Code2     C
20 ENVOL DE LA COUR    Code2     C
21    UN GUET APENS    Code2     H
22     MORTENS LEAM     DaH2   124
23   FRANKIE BALLOU     DaH2   117
24   MAXED OUT KING     DaH2   125
25  CASUAL CAVALIER     DaH2   120
26     WELL SMITTEN     DaH2   125
27 ENVOL DE LA COUR     DaH2     0
28    UN GUET APENS     DaH2   115
29     MORTENS LEAM    Code3     C
30   FRANKIE BALLOU    Code3     C
.....
.....

Я надеялся, что это позволит мне затем отфильтровать набор данных, чтобы удалить строки, в которых значение не «C» и соответствующий рейтинг DaH.

Итак, мне нужно удалить строки где код не C, а также соответствующий рейтинг DaH. Например, строки 76 и 77 не были «C», поэтому их необходимо удалить вместе со связанными строками 83 и 84 DaH.

Я подумал о разделении исходного набора данных и просмотре формы по лошади. ie:

  Code4 DaH4
1     C  107
2     C  115
3     C  125
4     C  119
5     C    0
6     H  132
7     C  122

Но я уверен, что есть способ удалить рейтинги DaH из исходного набора данных, не разделяя набор данных и go по одной строке за раз. Любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...