Я ищу решение для замены значений в нескольких столбцах значениями из тех же столбцов в разных строках, причем строки выбираются в зависимости от значений других столбцов в тех же строках.
Сокращенный пример мои данные выглядят так:
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 и choice = A1, я хочу заменить параметр 1 и параметр 2 на значения из строки 5, поскольку это тот же набор (= 1), но альтернативный выбор (A2).
У меня больше параметров и наборов в полном наборе данных, поэтому решение должно быть обобщено для большего количества параметров и наборов выбора. Кроме того, если это уместно, наборы и соответствующие варианты выбора появляются несколько раз, но всегда с одинаковыми значениями параметров.
Я знаю, что могу написать все это с различными типами условий if, но это будет ошибкой склонны (и не весело вообще). Может быть, у кого-то есть идея о том, как go сделать это умным способом?
(Это мой первый вопрос, надеюсь, это имеет смысл, и это достаточно ясно).
РЕДАКТИРОВАТЬ для пояснения: я собираюсь заменить набор 1, значения А2 на набор 1, значения А1 и наоборот, при этом количество наблюдений останется неизменным. Желаемый результат будет выглядеть так:
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