Вот упрощенная версия проблемы, которая включает обработку большой, сложной таблицы.Вот входная таблица:
library(tidyverse)
input <- tribble(
~group, ~score, ~label,
1, 10, 'A',
1, 20, 'B',
1, 30, 'C',
1, 40, 'D',
2, 11, 'A',
2, 21, 'B',
2, 31, 'C',
2, 41, 'D',
3, 12, 'A',
3, 22, 'B',
4, 13, 'A',
4, 23, 'B',
4, 33, 'C',
4, 43, 'D'
)
Таблица состоит из 14 строк.Данные сгруппированы в пронумерованные группы (1: 4), в каждой группе должно быть четыре балла, помеченных как A, B, C, D. Проблема в группе 3, в которой отсутствуют строки C и D.
Я хочу, чтобы R сделал следующее:
- Найдите группу 3 на основе отсутствия в ней строк C и D.
- Вставьте строки C и D для группы 3 в правильной алфавитной последовательности.
- Заполните
score
в новых строках C и D значением score
(22) из строки 3 группы B.
Другой способ описания преобразованияя хочу, чтобы две вставили две копии строки 3B, изменив метку этих скопированных строк с B на C и D. соответственно.
Желаемая выходная таблица имеет 16 строк и выглядит следующим образом:
output <- tribble(
~group, ~score, ~label,
1, 10, 'A',
1, 20, 'B',
1, 30, 'C',
1, 40, 'D',
2, 11, 'A',
2, 21, 'B',
2, 31, 'C',
2, 41, 'D',
3, 12, 'A',
3, 22, 'B',
3, 22, 'C',
3, 22, 'D',
4, 13, 'A',
4, 23, 'B',
4, 33, 'C',
4, 43, 'D'
)
Заранее спасибо за любую помощь!