1

英国の慣行からの処方データのデータフレームがあります。元のデータは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これは、行のサブセットを取得するよりも列全体を取得する方が優れているようです。

4

1 に答える 1

1

私がそれを理解できるかどうかはよくわかりませんが、私の最善の推測は次のとおりです。

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

これにより、それぞれの最初の 50 個のアイテムが選択されますpct(50 個のアイテムが確実にあると仮定します)。

于 2013-02-24T14:06:57.520 に答える