У меня есть существующий фрейм данных, в который я хотел бы добавить обновленные наблюдения. Я могу идентифицировать эти обновленные наблюдения по идентификатору и переменной временной точки. Я попытался удалить устаревшие наблюдения из существующего фрейма данных, а затем попытался использовать функцию merge () для слияния с фреймом данных только с обновленными наблюдениями, но я получаю дублированные столбцы. Есть ли элегантный способ сделать это (особенно с помощью dplyr?)
Вот пример того, что я хотел бы сделать: Допустим, у меня есть df, называемый практикой.
practice
ID Time score 1 score 2
1 hour 1 3 7
1 hour 2 4 2
2 hour 1 3 4
Допустим, я хочу изменить переменную оценки 1 для третьего наблюдения (для которого ID == 2 и время == "час 1") с 3 на 5.
Я пробовал создать новый фрейм данных, который называется Practice1:
ID Time score 1 score 2
1 hour 1 3 7
1 hour 2 4 2
Что удаляет третье наблюдение, а затем создает еще один новый фрейм данных с исправленными наблюдениями, называемый практикой2:
ID Time score 1 score 2
2 hour 1 3 4
Затем я попытался сделать что-то вроде этого:
Practice3 <- merge(practice2, practice1, by = "ID", all = T)
Однако я получаю повторяющиеся столбцы, и когда я пытаюсь включить несколько переменных в оператор by = функции слияния, я получаю эту ошибку:
Error in fix.by(by.x, x) : 'by' must specify a uniquely valid column
Что может быть связано с лонгитюдным характером данных?
Спасибо