В конечном счете, я хочу создать таблицу, содержащую каждый уникальный идентификатор, который у меня есть в моем наборе данных, с соответствующим полем на основе «ранжирования» этого поля.
Я очень застрял на этом шаге. Я рассмотрел циклы для каждого уникального идентификатора, но хотел посмотреть, есть ли более простой способ. Возможно, применение семейства функций могло бы помочь. Я также не уверен в способе ранжировать различные строковые значения (например, TRUE> FALSE> NA).
Ниже приведен небольшой пример того, на что я смотрю, только с двумя интересующими областями:
df1 <- data.frame(ID = c(1,1,2,2,3,3,3,4,4,5,6,7,7), flag = c("NA", "TRUE", "NA", "FALSE", "TRUE", "TRUE", "FALSE", "NA", "NA", "NA", "TRUE", "FALSE", "FALSE"))
Для каждого ID:
- Если в поле флага есть хотя бы одно «ИСТИНА», я хочу получить одну из этих целых строк (неважно, какая из них).
- Если идентификатор не содержит значения «ИСТИНА» в поле флага, но содержит «ЛОЖЬ» хотя бы в одной строке, я хочу получить одну из этих целых строк.
- Если идентификатор не имеет значения «ИСТИНА» или «ЛОЖЬ» в поле флага, я все еще хочу одну из строк «NA».
Ниже приведен отдельный фрейм данных, который в идеале я хотел бы иметь:
ideal.df <- data.frame(ID = c(1,2,3,4,5,6,7), flag = c("TRUE", "FALSE", "TRUE", "NA", "NA", "TRUE", "FALSE"))
Заранее спасибо за любую помощь!