他の変数が特定の条件を満たしていて、特別な折りたたみ変数を計算している場合に限り、以下のデータセットをId_noで折りたたみたいとします。特定の条件の下でのみデータフレーム内のケースを折りたたむ
df <- structure(list(Id_no = structure(c(1L, 1L, 1L, 2L, 2L, 3L), .Label = c("n1",
"n2", "n3"), class = "factor"), Band = structure(c(1L, 2L, 3L,
1L, 2L, 1L), .Label = c("Band 1", "Band 2", "Band 3"), class = "factor"),
median = c(252, 191, 107, 130.5, 61.5, 217), sample_size = c(19L,
20L, 1L, 20L, 12L, 1544L)), .Names = c("Id_no", "Band", "median",
"sample_size"), class = "data.frame", row.names = c(NA, -6L))
> df
Id_no Band median sample_size
1 n1 Band 1 252.0 19
2 n1 Band 2 191.0 20
3 n1 Band 3 107.0 1
4 n2 Band 1 130.5 20
5 n2 Band 2 61.5 12
6 n3 Band 1 217.0 1544
崩壊変数はバンド1における中央値の比であるVSこれは実際B1と少なくとも一つの双方のエントリを有することId_noについて計算される2,3
帯域間の中央値を意味しますB2またはB3の
さらに、B2とB3の中央値は、サンプルサイズが> = 10の場合にのみ考慮する必要があります。
私が探している結果の表は、このです:
Id_no b1_vs_rest
1 n1 1.32
2 n2 2.12
最初のステップは、サンプルサイズが最小を満たしていないケースを削除するには、おそらくです:
df <- subset(df, sample_size >=10)
申し訳ありませんが、あなたは少し質問に誤解しました。 b1_vs_restは、B1の中央値で、B2とB3の平均中央値以上である必要があります。 Id_no = n1の場合、B3のsample_sizeは<10なので除去されるので、b1_vs_rest = B1/B2であるため、図はulfelder解と同じです。しかし、sample_sizeが10より大きい場合、数値は異なります。 – Mihael
この部分を次のように修正しました: 'b1_vs_rest = f(median [Band ==" Band 1 "])/ mean(c(f(median [Band ==" Band 2 "])、f(median [Band == "Band 3"]))) 'となりましたが、値は2倍になります。何か案は? – Mihael
@ミアエル:あなたが正しいことが分かります。私の編集を見てください。 – aichao