Я ищу решение для замены значений в нескольких столбцах значениями из одних и тех же столбцов в разных строках, при этом строки выбираются в зависимости от значений других столбцов в тех же строках.
Сокращенный пример моих данных выглядит так:
data <- data.frame(cbind(
id=c(1:7),
set = c(1,2,2,3,1,3,2),
choice = c("A1","A2","A1","A1","A2","A2","A2"),
parameter1=c("blue","green","red","red","orange","blue","green"),
parameter2=c("low", "low","high","medium","high","high","low")
))
data
id set choice parameter1 parameter2
1 1 1 A1 blue low
2 2 2 A2 green low
3 3 2 A1 red high
4 4 3 A1 red medium
5 5 1 A2 orange high
6 6 3 A2 blue high
7 7 2 A2 green low
Конкретно, я пытаюсь заменить значения параметра 1 и параметра 2 для набора значениями параметра 1 и параметра 2 того же набора, но с другим выбором. Итак, для первой строки set = 1 и selection = A1 я хочу заменить параметр 1 и параметр 2 значениями из строки 5, так как это тот же набор (= 1), но альтернативный выбор (A2).
У меня есть больше параметров и наборов в полном наборе данных, поэтому решение должно быть обобщаемым для большего количества параметров и наборов выбора. Кроме того, при необходимости наборы и соответствующие варианты выбора появляются несколько раз, но всегда с одними и теми же значениями параметров.
Я знаю, что мог бы написать все это с различными условиями if, но это было бы подвержено ошибкам (и совсем не весело). Может быть, у кого-то есть идея, как это сделать по-умному?
(Это мой первый вопрос здесь, надеюсь, что он имеет смысл и достаточно ясен).
РЕДАКТИРОВАТЬ для уточнения: я хочу заменить значения Set 1, A2 значениями Set 1, A1 и наоборот, при этом количество наблюдений останется прежним. Желаемый результат будет выглядеть так:
id set choice parameter1 parameter2
1 1 1 A1 orange high
2 2 2 A2 red high
3 3 2 A1 green low
4 4 3 A1 blue high
5 5 1 A2 blue low
6 6 3 A2 red medium
7 7 2 A2 red high
parameter1
иparameter2
строки 5 должны измениться на строку 1? Для более чем 2choice
как вы решаете, какие значения строк следует поменять местами, - person Ronak Shah   schedule 10.04.2020