Итак, у меня есть этот фрейм данных столбца condition
и столбца value
. Предположим, я хочу изменить одно из значений, для которых выполняется условие, но не все значения, для которых выполняется условие. Идея здесь в том, что я хотел бы изменить значения одно за другим (или выбрать одно случайно).
df <- data.frame(condition = c(TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE),
value = 8:1)
Я хотел бы сохранить это в новом столбце. Предположим, я случайно выбрал строку 2: условие имеет значение ИСТИНА, а исходное значение равно 7. Я изменяю его на 0 (или другое значение). Желаемый результат в этом случае:
> df
condition value
1 TRUE 8
2 TRUE 7
3 TRUE 6
4 TRUE 5
5 FALSE 4
6 FALSE 3
7 FALSE 2
8 FALSE 1
Полагаю, я мог бы сделать это с помощью оператора if, третьего столбца номеров групповых строк и образца функции, но есть ли более хороший способ? В частности, мне нужно убедиться, что я не генерирую новый столбец, если условие не выполняется ни для одного из значений. В противном случае я теряю много компьютерного времени позже в анализе.
Обычно я делаю что-то внутри тидиверса, если могу, но я не против, если есть хорошее решение без использования пакета (или использования другого пакета).
Спасибо!