У меня есть вектор чисел (nth_RT) и кадр данных (df):
nth_RT
[1] 0.61 0.47 0.50 0.53 0.50 0.56
df
# Subject RT Trial Block Rank
# (int) (int) (int) (int) (int)
#1 1 234 1 1 1
#2 1 239 3 1 2
#3 1 563 2 1 3
#4 1 230 1 2 1
#5 1 234 3 2 2
#6 1 467 2 2 3
#7 1 111 3 3 1
#8 1 466 2 3 2
#9 1 543 1 3 3
#10 2 44 2 1 1
#11 2 223 3 1 2
#12 2 343 1 1 3
#13 2 34 2 2 1
#14 2 242 3 2 2
#15 2 324 1 2 3
#16 2 54 1 3 1
#17 2 345 3 3 2
#18 2 656 2 3 3
Я хочу рассчитать и добавить в качестве нового столбца (nth) n-й процентиль для каждого блока по предмету, т. е. 61-й процентиль RT для 1-го блока 1-го субъекта, 47-й процентиль RT для 2-й блок 1-й субъект, 50-й процентиль RT для 3-го блока 1-й субъект, 53-й процентиль 1-го блока 2-й участник и т. д. Таким образом, кадр данных будет выглядеть следующим образом:
df
# Subject RT Trial Block Rank nth
#1 1 234 1 1 1 310.28
#2 1 239 3 1 2 310.28
#3 1 563 2 1 3 310.28
#4 1 230 1 2 1 233.76
#5 1 234 3 2 2 233.76
#6 1 467 2 2 3 233.76
#7 1 111 3 3 1 466
#8 1 466 2 3 2 466
#9 1 543 1 3 3 466
#10 2 44 2 1 1 230.2
#11 2 223 3 1 2 230.2
#12 2 343 1 1 3 230.2
#13 2 34 2 2 1 242
#14 2 242 3 2 2 242
#15 2 324 1 2 3 242
#16 2 54 1 3 1 382.32
#17 2 345 3 3 2 382.32
#18 2 656 2 3 3 382.32
У меня есть код для одного блока на участника, но он не работает:
nth_RT <-quantile(df$RT ~ Block * Subject, nth_RT[1])
Есть ли лучший способ расчета процентилей и добавления их в качестве нового столбца? Я предполагаю, что можно использовать цикл или функцию для последовательного считывания каждого значения из вектора, а затем вычислять процентили.