1
異なるプロジェクトに関連する異なる支出額を持つ会社の支出データがあるとします。どのようにして元の総支出(人口データ)の一定割合(例えば80%)のサンプルの支出の合計が得られるようなサンプルを取ることができますか?再現性のため条件付きでデータのサブセットを取得するにはどうすればよいですか?
異なるプロジェクトに関連する異なる支出額を持つ会社の支出データがあるとします。どのようにして元の総支出(人口データ)の一定割合(例えば80%)のサンプルの支出の合計が得られるようなサンプルを取ることができますか?再現性のため条件付きでデータのサブセットを取得するにはどうすればよいですか?
設定シード:
set.seed(12345)
は、いくつかのサンプルデータを作成し、100件のプロジェクトで:
dat <- data.frame(proj = 1:100,
exp = sample(100:1000, 100, replace = TRUE))
totalexp <- sum(dat$exp)
がランダム
ord <- sample(1:nrow(dat),nrow(dat))
dat <- dat[ord,]
データを注文するための総支出の割合を追加します。各プロジェクト:
これらの比率についてdat$exp.prop <- dat$exp/totalexp
計算累積合計:
:dat$exp.cumsum <- cumsum(dat$exp.prop)
累積合計が最初の80%のしきい値を超えると、そのインデックスの前にすべてのプロジェクトとして、プロジェクトのサンプルを取るプロジェクトのインデックスを探します
proj.sample <- dat$proj[1:(which(dat$exp.cumsum>0.80)[1]-1)]
proj.sample
[1] 30 62 96 60 51 86 97 81 24 20 55 35 67 34 69 77 83 49 1 26 45
[22] 41 7 53 54 61 70 14 21 90 3 47 56 80 63 57 88 12 78 50 32 79
[43] 13 36 9 85 76 27 48 19 42 28 39 17 10 65 31 98 64 25 100 92 33
[64] 44 73 18 87 6 71 58 40 38 72 68 46 43 95 22
したがって、支出のある列があり、サンプル列の合計が元の列の合計の80%になるように十分なエントリを含むサンプルが必要ですか? – LAP
データをランダムに注文してから、累積合計額が支出総額の80%以上の最初のn行を取る –
累積合計のコードを助けて、最初の行を得ることができますか?合計金額の累計額の80%を占めていますか? それは大きな助けになるでしょう! –