この Stata コマンドを R で再作成したい
by Area Sex Age: keep if (Infected==1) | ((_n<=1*ncases) & (Infected==0))
これは、一致したケースコントロール研究用です
私のデータフレームには、193 のケースと、グループごとに可変数のコントロール (地域の性別と年齢) が含まれています。地域の性別と年齢のグループ化に基づいて、各ケースに 1 つのランダム コントロールを一致させようとしています。
ncasesは、各グループのケース数を示すデータフレーム内の整数です (Area Sex Age)
上記のコマンド ラインは、Stata で正常に動作します。
しかし、私が書いた R コードは、最初のグループに対してのみ機能します。
dat5 <- subset(dat4,by=list(Area,Sex,Age),(Infected=1 |
((seq(dim(dat4)[1]))<=1*ncases & Infected==0)))
これは私のデータフレーム dat4 です: Infected=1 はケース、infected=0 はコントロールです。
Area Sex Age CensusNo Animals Infected ncases
18825 1 1 23 1023224 0 0 1
18826 1 1 23 1024109 1 0 1
18827 1 1 23 1024163 0 1 1
41428 7 2 50 1047107 1 0 1
41429 7 2 50 1047029 1 0 1
41430 7 2 50 1046901 1 1 1
41439 5 1 36 1047037 1 0 2
41440 5 1 36 1047127 1 0 2
41441 5 1 36 1047125 1 0 2
41442 5 1 36 1047005 1 0 2
41443 5 1 36 1046994 0 1 2
41444 5 1 36 1046972 0 1 2