我有一份处理来自英国实践的数据的数据框。 原始数据位于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
。我还没弄明白如何使用apply
或sapply
来完成关卡的子集。这似乎比获取整个列更好,而不是获取行的子集。
答案 0 :(得分:1)
我不确定是否得到它,但我最好的猜测是:
require(plyr)
ddply(df, .(pct), function(x) x[1:50, ])
这将为每个pct
挑选前50个项目(假设肯定有50个项目)。