У меня есть df, например:
outc task prevt
<fct> <fct> <fct>
1 los fre rep
2 los fre swi
3 los ins rep
4 los ins swi
5 win fre rep
6 win fre swi
7 win ins rep
8 win ins swi
Я хочу заменить значения в столбце task и prevt, в зависимости от значения в каждом из этих столбцов.Например, если задача «fre», а prevt - «rep», то задача должна быть изменена на «ins», а prev - «swi».Главное, что мне нужно изменить все сразу, как будто я делаю это один за другим, тогда результат будет отличаться от того, что я хочу.Таким образом, казалось, что задание легко изменить с помощью mutate и replace:
df %>%
mutate(task = replace(task, task == 'fre' & prevt == 'rep', 'ins'),
prevt = replace(prevt, task == 'fre' & prevt == 'rep', 'swi'))
Но по какой-то причине в этом случае работает только первая часть mutate, то есть столбец задачи изменяется, а столбец prevt - нет.
outc task prevt
<fct> <fct> <fct>
1 los ins rep
2 los fre swi
3 los ins rep
4 los ins swi
5 win ins rep
6 win fre swi
7 win ins rep
8 win ins swi
Если я изменю вторую часть на какое-то безусловное значение (например, prevt = '1'), то это сработает.
df %>%
mutate(task = replace(task, which(task == 'fre' & prevt == 'rep'), 'ins'),
prevt = '1')
outc task prevt
<fct> <fct> <chr>
1 los ins 1
2 los fre 1
3 los ins 1
4 los ins 1
5 win ins 1
6 win fre 1
7 win ins 1
8 win ins 1
Так что по какой-то причине замена двух не работает в mutate.Не могли бы вы помочь мне, что я мог сделать в этом случае?