Я все еще новичок в R, и у меня есть проблема с отображением моих данных, которая выглядит примерно так:
set.seed(529)
test <- data.frame(StartPos = rep(1:10, times = 10),
Response = c(sample(c("H", "M", "W"), 50, replace=T),
sample(c("M", "W"), 50, replace = T)),
Velocity = c(sample(c(-36, 36), 100, replace = T)))
head(test)
на основе критериев.
Данные состоят из 100 строк с начальными позициями 3-5 и 10-11 (каждая случайным образом генерируется 10 раз (примерно 20 раз, как стартовая позиция 3, которая может существовать 20 раз)). Каждая из стартовых позиций также имеет ответ, который может быть H для Hit, M для Miss или W для неправильного. Возможно, что для определенной начальной позиции нет H. Существует также столбец Velocity со значениями -36 и 36, которые описывают направление стимула, который начинался на определенных StartPos (-36 справа, 36 слева).
Я хочу нанести на график количество ударов с каждой стороны (HitR и HitL) для каждого начального положения на барплоте (например, 17 ударов из 20 для StartPos 3, 7 из них - удары справа - остальные 10 Хиты слева) -
Это похоже на мой предыдущий пост с 1 дополнительным условием: ggplot2 альтернативы для заполнения барплотов, вхождение фактора в несколько строк
Мне удалось посчитать количество хитов. Но без критерия, был ли это удар вправо или влево.
Я выполнил это с помощью следующего кода:
hit_counts <- test %>%
mutate(StartPos = as.factor(StartPos)) %>%
filter(Response == "H") %>%
count(StartPos, .drop = FALSE)
hit_counts
ggplot(hit_counts, aes(x = StartPos,y=n)) +
geom_col()+labs(x="StartPos",y="Hitrate")
Сюжет выглядел так:
Это близко к тому, что мне нужно, но я не могу придумать, как разделить или суммировать Хиты в зависимости от направления движения, а затем построить их.