Каскадный мутат в R - PullRequest
       58

Каскадный мутат в R

0 голосов
/ 25 мая 2018

Итак, у меня есть фрейм данных, который я пытаюсь очистить, чтобы отметить, какие символы имеют какие строки в песне:

                  artist track_title                     lyric     character
1  Claude-Michel Schönberg    Prologue             ["Work Song"] ["Work Song"]
2  Claude-Michel Schönberg    Prologue               [PRISONERS]   [PRISONERS]
3  Claude-Michel Schönberg    Prologue       Aaah, aah, aaaahhhh         false
4  Claude-Michel Schönberg    Prologue      Look down, look down         false
5  Claude-Michel Schönberg    Prologue Don't look 'em in the eye         false
6  Claude-Michel Schönberg    Prologue      Look down, look down         false
7 Claude-Michel Schönberg    Prologue You're here until you die         false
8 Claude-Michel Schönberg    Prologue             [PRISONER #1] [PRISONER #1]

Что я хочу сделать, так или иначе проверить, является ли значение для character имеет значение false, и если это так, постоянно ищите, пока я не получу 1-й экземпляр, или чтобы проверить, превышает ли текущее значение character значение false, и если да, то принять предыдущее значение character.

Я пытался использовать lead() и lag(), как показано ниже:

lyrics[c(1:3,8:15),] %>% mutate(character = if_else(str_detect(lyric, "\\[|\\]") == TRUE,lyric,'false'), character2 = if_else(character == 'false',lag(character),character)) %>% as.data.frame()

но я получаю только что-то похожее на это:

                    artist track_title                     lyric     character
1  Claude-Michel Schönberg    Prologue             ["Work Song"] ["Work Song"]
2  Claude-Michel Schönberg    Prologue               [PRISONERS]   [PRISONERS]
3  Claude-Michel Schönberg    Prologue       Aaah, aah, aaaahhhh   [PRISONERS]
4  Claude-Michel Schönberg    Prologue Don't look 'em in the eye         false
5  Claude-Michel Schönberg    Prologue      Look down, look down         false
6  Claude-Michel Schönberg    Prologue You're here until you die         false
7  Claude-Michel Schönberg    Prologue             [PRISONER #1] [PRISONER #1]

Он делает это только один раз, и я пытаюсь сделать этот каскад вниз по колонне.

...