У меня есть данные, которые выглядят так (это тестовые данные для иллюстрации):
test <- matrix(c(1, 1, 1, 2, 2, 2 , 529, 528, 528, 495, 525, 510,557, 535, 313,502,474, 487 ), nr=6, dimnames=list(c(1,2,3,4,5,6),c("subject", "rt1", "rt2")))
И мне нужно превратить это в это:
test2<-matrix(c(1,1,1,2,2,2,529,528,528,495,525,510,"slow","slow","fast","fast","slow","slow",557, 535, 313,502,474, 487,"fast","fast","slow","slow","fast","fast"), nr=6, dimnames=list(c(1,2,3,4,5,6),c("subject", "rt1","speed1", "rt2","speed2")))
Столбец speed1 рассчитывается следующим образом: рассчитайте медиану rt1 для субъекта. Если индивидуальное значение меньше, чем медиана, оно оценивается быстро. Если значение rt1 для отдельной клетки больше, чем медиана, оно считается медленным. Если значение ячейки находится в медиане, ячейка удаляется из анализа (удалить или NA), и медиана для этого субъекта пересчитывается. Этот процесс повторяется для столбца speed2, но с использованием rt2.
Возможно, какое-то утверждение if?
Чтобы уточнить: я хочу, чтобы медиана для каждого субъекта (всего их было 40) и для любых значений, которые находятся на медиане (для этого субъекта), была исключена и медиана пересчитана (для этого субъекта).