我有一个数据框,其中包含 70-80 行有序响应时间 (rt) 数据,每个 228 人都有一个唯一的 id#(每个人的行数都不相同)。我想将每个人的 RT 分成 5 个箱子。我希望第一个箱是他们最快的 20% 的 RT,第二个箱是他们下一个最快的 20% 的 RT,等等。每个箱应该有相同数量的试验(除非试验的总数是奇数)。
我当前的数据框如下所示:
id RT
7000 225
7000 250
7000 253
7001 189
7001 201
7001 225
我希望我的新数据框看起来像这样:
id RT Bin
7000 225 1
7000 250 1
让我的数据看起来像这样后,我将按 id 和 bin 聚合
我能想到的唯一方法是将数据拆分为一个列表(使用 split 命令),遍历每个人,使用 quantile 命令获取不同 bin 的断点,分配 bin 值(1- 5) 到每个响应时间。这感觉非常复杂(对我来说很难)。我有点卡住了,我将非常感谢有关如何简化此过程的任何帮助。谢谢。