通过另一列中的因子提取列中的前50个

时间:2013-02-24 13:50:47

标签: r dataframe row

我有一份处理来自英国实践的数据的数据框。 原始数据位于http://datagov.ic.nhs.uk/T201207.exe。我已将其与PCT级数据框架争论,按PCT和最常见的处方(“项目”栏中的降序排列)排序。

      pct sha chem.code items      nic act.cost
32360 5ZW Q39 0212000Y0 12421 17811.40 16888.21
28769 5ZW Q39 0209000A0  8741  7834.43  7554.72
4439  5ZW Q39 0103050P0  7733 21566.51 20210.05
...
82763  5D7 Q30 0603020L0     1 1.08     1.13
152673 5D7 Q30 1502010C0     1 0.92     0.85
5149   5D7 Q30 0104020N0     1 0.70     0.68
149501 5D7 Q30 1311060I0     1 0.50     0.49

有151 pct,每个超过1000项。我想为每个pct提取前50个项目。我知道我可以写一个for循环,只是迭代pct的级别,但那不是R。我还没弄明白如何使用applysapply来完成关卡的子集。这似乎比获取整个列更好,而不是获取行的子集。

1 个答案:

答案 0 :(得分:1)

我不确定是否得到它,但我最好的猜测是:

require(plyr)
ddply(df, .(pct), function(x) x[1:50, ])

这将为每个pct挑选前50个项目(假设肯定有50个项目)。