Используйте регулярное выражение, чтобы сократить case_when в dplyr - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть case_when утверждение, которое слишком длинное, и я думаю, что его можно легко сократить с помощью регулярного выражения в именах столбцов

Ввод

de<- dd %>%
#Check that Fraction is % Time Spent in Reflux
mutate(
  AcidRefluxBRAVO = case_when(
    ReflDay1FractionTimepHLessThan4Supine  > 4.2        ~ "SupineAcid",
    ReflDay1NumberofRefluxesSupine  > 73 ~ "SupineAcid",
    ReflDay1FractionTimepHLessThan4Upright> 4.2        ~ "UprightAcid",
    ReflDay1NumberofRefluxesUpright > 73 ~ "UprightAcid",
    ReflDay1FractionTimepHLessThan4Total > 4.2        ~ "TotalAcid",
    ReflDay1NumberofRefluxesTotal > 73 ~ "TotalAcid",

    ReflDay2FractionTimepHLessThan4Supine > 4.2        ~ "SupineAcid",
    ReflDay2NumberofRefluxesSupine > 73 ~ "SupineAcid",
    ReflDay2FractionTimepHLessThan4Upright > 4.2        ~ "UprightAcid",
    ReflDay2NumberofRefluxesUpright > 73 ~ "UprightAcid",
    ReflDay2FractionTimepHLessThan4Total > 4.2        ~ "TotalAcid",
    ReflDay2NumberofRefluxesTotal > 73 ~ "TotalAcid",

    ReflDay3FractionTimepHLessThan4Supine > 4.2        ~ "SupineAcid",
    ReflDay3NumberofRefluxesSupine > 73 ~ "SupineAcid",
    ReflDay3FractionTimepHLessThan4Upright > 4.2        ~ "UprightAcid",
    ReflDay3NumberofRefluxesUpright > 73 ~ "UprightAcid",
    ReflDay3FractionTimepHLessThan4Total > 4.2        ~ "TotalAcid",
    ReflDay4NumberofRefluxesTotal > 73 ~ "TotalAcid",

    ReflDay4FractionTimepHLessThan4Supine > 4.2        ~ "SupineAcid",
    ReflDay4NumberofRefluxesSupine > 73 ~ "SupineAcid",
    ReflDay4FractionTimepHLessThan4Upright > 4.2        ~ "UprightAcid",
    ReflDay4NumberofRefluxesUpright > 73 ~ "UprightAcid",
    ReflDay4FractionTimepHLessThan4Total > 4.2        ~ "TotalAcid",
    ReflDay4NumberofRefluxesTotal > 73 ~ "TotalAcid",

    ReflDayTotalFractionTimepHLessThan4Supine > 4.2        ~ "SupineAcid",
    ReflDayTotalNumberofRefluxesSupine > 73 ~ "SupineAcid",
    ReflDayTotalFractionTimepHLessThan4Upright > 4.2        ~ "UprightAcid",
    ReflDayTotalNumberofRefluxesUpright > 73 ~ "UprightAcid",
    ReflDayTotalFractionTimepHLessThan4Total > 4.2        ~ "TotalAcid",
    ReflDayTotalNumberofRefluxesTotal > 73 ~ "TotalAcid",
    TRUE ~ "NoAcid"
  )
)

Используемое регулярное выражение:

 ReflDay\dNumber.*Supine
    ReflDay\dNumber.*Upright
    ReflDay\dNumber.*Total
    ReflDay\dFraction.*Supine
    ReflDay\dFraction.*Upright
    ReflDay\dFraction.*Total

Однако я не уверен, как использовать регулярное выражение для имен столбцов в операторе case_when.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...