同じグループ(ID)内の観測値の数に基づいて、観測値に等しい重みを割り当てたい、つまりfrac_weight = 1 / count(same ID)
ID frac_weight
FSGBR070N3 0.333333333
FSGBR070N3 0.333333333
FSGBR070N3 0.333333333
FS00008L4G 1
FS00008VLD 0.333333333
FS00008VLD 0.333333333
FS00008VLD 0.333333333
FS00009SQX 0.5
FS00009SQX 0.5
FSUSA0A1KW 0.5
FSUSA0A1KW 0.5
FSUSA0A1KX 1
FSUSA0A1KY 1
FS0000B389 0.5
FS0000B389 0.5
FSUSA09AX9 1
これはおそらくワンライナーですが、このフォーラムではもっと複雑な投稿しか見つかりませんでした。私は始めました:
ID_vec <- dat$ID
data.frameからID列を選び出します
ありがとう、ウィルヘルムファンタスティック。
関数を試してくださいave
。
ID_vec <- dat$ID
frac_w <- as.numeric(ave(ID_vec, ID_vec, FUN = function(x) 1/length(x)))
all.equal(dat$frac_weight, frac_w)
[1] TRUE
重要な注意:class(dat$ID)
返品の場合は、factor
次のことを行う必要があります
ID_vec <- as.character(dat$ID)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加