У меня есть фрейм данных (df), в котором я хочу сопоставить каждый столбец с последним столбцом, чтобы предоставить новые значения для каждого из этих столбцов.
Вот мой пример фрейма данных (df):
> df
S1 S2 S3 S4 S5 main
Gene1 1 1 1 1 2 1
Gene2 1 2 1 1 1 1
Gene3 1 1 1 1 2 2
Gene4 2 1 1 1 1 1
Gene5 1 2 1 2 1 1
Gene6 1 1 1 1 1 2
Gene7 NA NA 2 1 1 1
Gene8 1 2 1 1 1 2
Gene9 2 1 1 2 1 1
Я хочу сопоставить каждый из моих столбцов от 1 до 5 с последним столбцом при следующих условиях.'S' ниже относится к каждому столбцу от 1 до 5.
If S = 2 and main = 2, then value is True Positive (TP)
If S = 2 and main = 1, then value is False Positive (FP)
If S = 1 and main = 2, then value is False Negative (FN)
If S = 1 and main = 1, then value is True Negative (TN)
And NAs to remain as NAs.
И поэтому мой новый фрейм данных (df_updated) должен выглядеть следующим образом.
> df_updated
S1 S2 S3 S4 S5
Gene1 TN TN TN TN FP
Gene2 TN FP TN TN TN
Gene3 FN FN FN FN TP
Gene4 FP TN TN TN TN
Gene5 TN FP TN FP TN
Gene6 FN FN FN FN FN
Gene7 NA NA FP TN TN
Gene8 FN TP FN FN FN
Gene9 FP TN TN FP TN
Мне известно офункции соответствия, но я не уверен, как их зациклить и использовать указанные выше конкретные соответствия для каждого из столбцов.
Любая помощь приветствуется, спасибо.