Я новичок в группе и Р. Я уже задавал вопрос раньше и очень благодарен за предоставленную помощь, но понял, что мне не очень понятно. Надеюсь, это лучшая попытка прояснить мою проблему. Заранее благодарим всех, кто может помочь.
У меня есть набор данных, который содержит имена скаковых лошадей вместе с рейтингом производительности каждой скаковой лошади, «DaH» (целое число) и типом скачек, в которых лошади участвовали, в «Коде» , (символ).
В наборе данных есть 7 лошадей с рейтингами производительности (DaH) для последних 3 гонок, от DaH1 до DaH3, где DaH1 - это рейтинг производительности для последней / последней гонки, а DaH3 - лошади рейтинг производительности от 3 гонок go. Точно так же коды, от Code1 до Code3, предоставляют код, в котором бежала лошадь.
Итак, глядя на набор данных ниже, вы можете увидеть, что лошадь2 участвовала в гонке с кодом C в своей последней гонке и достигла производительности рейтинг DaH1 составляет 124.
Я импортирую данные о скачках от поставщика данных о скачках.
> racehorse_data
Code1 DaH1 Code2 DaH2 Code3 DaH3
1 C 0 C 124 C 127
2 C 124 C 117 C 0
3 C 121 C 125 C 0
4 C 123 C 120 C 124
5 C 0 C 125 H 122
6 H 122 C 0 C 137
7 C 110 H 115 C 127
structure(list(Code1 = c("C", "C", "C", "C", "C", "H", "C"),
DaH1 = c(0L, 124L, 121L, 123L, 0L, 122L, 110L), Code2 = c("C",
"C", "C", "C", "C", "C", "H"), DaH2 = c(124L, 117L, 125L,
120L, 125L, 0L, 115L), Code3 = c("C", "C", "C", "C", "H",
"C", "C"), DaH6 = c(127L, 0L, 0L, 124L, 122L, 137L, 127L)), class = "data.frame", row.names = c(NA,
-7L))
Мне нужно рассчитать средний рейтинг DaH для каждой лошади, как только я исключены все оценки производительности, достигнутые в коде, отличном от кода «C». Чтобы уточнить: проблема, с которой я столкнулся, заключается в том, что мне нужно удалить все рейтинги производительности, DaH, где код гонки не был гонкой кода 'C'.
Так, например, вы можете увидеть эта лошадь 6 участвовала в гонке с кодом «H» в своем последнем забеге. Это необходимо удалить из набора данных, чтобы остались только две гонки, у которых лошадь 6 достигла DaH2 = 0 и DaH3 = 137, чтобы получить средний рейтинг DaH 68,5 для двух ее гонок с кодом C.
I Мы играли с командой MELT, пытаясь добиться перенастроенного фрейма данных, который позволит мне отфильтровать рейтинги DaH, где код гонки не был равен «C». Но мне не удалось этого добиться.
Мне пришло в голову, что я могу изолировать каждую лошадь DaH и Code как отдельный фрейм данных и работать с каждой лошадью по отдельности, но это кажется более сложным, чем мне хотелось бы.
Мой идеальный результат - это фрейм данных, например:
> racehorse_data
DaH1 DaH2 DaH3 Mean
1 0 124 127 83.7
2 124 117 0 80.3
3 121 125 0 82
4 123 120 124 122.3
5 0 125 na 62.5
6 na 0 137 68.5
7 110 na 127 118.5
Или, возможно, отдельный вектор для каждой лошади
horse 1 0 124 127 83.7
horse 2 124 117 0 80.3
etc
Большое спасибо, Грэм