免責事項: 「崩壊」という言葉がこの操作に適しているかどうかはわかりません。より適切な用語があれば、私はすべて耳にします。
私は、長期にわたる複数の観察から、数百人の患者の症状の重症度に関するデータを持っています。重大度は序数スケールで定義されます。簡単な例を次に示します。
# Create example dataset
example.dat <- data.frame(
ID = c(1,1,1,2,2,2,3,3,3,4,4,4), # patient ID numbers
Time = c("T1", "T2", "T3", "T1", "T2", "T3", # times at which data were collected
"T1", "T2", "T3", "T1", "T2", "T3"),
Severity = c("Mild", "Moderate", "Mild", # severity of symptoms
"Severe", "Severe", "Moderate",
"None", NA, "None",
"Moderate", "Moderate", "Mild")
)
# Specify the order of the factor levels
example.dat$Severity <- ordered(example.dat$Severity,
levels = c("None",
"Mild",
"Moderate",
"Severe")
)
example.dat
結果のデータ フレームは次のようになります。
ID Time Severity
1 1 T1 Mild
2 1 T2 Moderate
3 1 T3 Mild
4 2 T1 Severe
5 2 T2 Severe
6 2 T3 Moderate
7 3 T1 None
8 3 T2 <NA>
9 3 T3 None
10 4 T1 Moderate
11 4 T2 Moderate
12 4 T3 Mild
ID ごとに観察された最も深刻な症状 (つまり、順序付けられた因子の最高レベル) を含む新しい列を作成したいと思います。これは次のようになります。
ID Time Severity Worst
1 1 T1 Mild Moderate
2 1 T2 Moderate Moderate
3 1 T3 Mild Moderate
4 2 T1 Severe Severe
5 2 T2 Severe Severe
6 2 T3 Moderate Severe
7 3 T1 None None
8 3 T2 <NA> None
9 3 T3 None None
10 4 T1 Moderate Moderate
11 4 T2 Moderate Moderate
12 4 T3 Mild Moderate
そこから簡単にサブセット化してこのデータ フレームを作成できます。このデータ フレームには、ID ごとに、最新の観測時刻と調査期間中に報告された最悪の症状が含まれます。
ID Time Worst
3 1 T3 Moderate
6 2 T3 Severe
9 3 T3 None
12 4 T3 Moderate
何かご意見は?