Допустим, у меня есть следующая структура данных:
structure(list(treatment = c("DD", "DR", "RD", "RR", "DD", "DR",
"RD", "RR", "DD", "DR", "RD", "RR", "DD", "DR", "RD", "RR", "DD",
"DR", "RD", "RR", "DD", "DR", "RD", "RR", "DD", "DR", "RD", "RR",
"DD", "DR", "RD", "RR", "DD", "DR", "RD", "RR", "DD", "DR", "RD",
"RR", "DD", "DR", "RD", "RR", "DD", "DR", "RD", "RR", "DD", "DR",
"RD", "RR", "DD", "DR", "RD", "RR", "DD", "DR", "RD", "RR", "DD",
"DR", "RD", "RR", "DD", "DR", "RD", "RR", "DD", "DR", "RD", "RR",
"DD", "DR", "RD", "RR", "DD", "DR", "RD", "RR", "DD", "DR", "RD",
"RR", "DD", "DR", "RD", "RR", "DD", "DR", "RD", "RR", "DD", "DR",
"RD", "RR", "DD", "DR", "RD", "RR", "DD", "DR", "RD", "RR", "DD",
"DR", "RD", "RR", "DD", "DR", "RD", "RR", "DD", "DR", "RD", "RR",
"DD", "DR", "RD", "RR", "DD", "DR", "RD", "RR"), correct = c(0.428571428571429,
0.6, 0.625, 0.75, 0.757142857142857, 0.725, 0.675, 0.65, 0.971428571428571,
0.875, 0.875, 0.875, 0.442857142857143, 0.35, 0.325, 0.425, 0.942857142857143,
0.975, 0.925, 0.9, 0.171428571428571, 0.15, 0.175, 0.2375, 0.714285714285714,
0.925, 0.95, 0.825, 0.957142857142857, 0.925, 0.9, 0.9125, 0.228571428571429,
0.275, 0.275, 0.4625, 0.9, 0.8, 0.825, 0.725, 0.971428571428571,
0.9, 0.85, 0.9375, 0.885714285714286, 0.925, 0.925, 0.95, 0.857142857142857,
0.85, 0.85, 0.825, 0.857142857142857, 0.75, 0.75, 0.925, 0.942857142857143,
0.925, 0.925, 0.825, 0.871428571428571, 0.8, 0.8, 0.6375, 0.957142857142857,
0.925, 0.925, 0.85, 1, 0.925, 0.9, 0.975, 0.971428571428571,
0.925, 0.9, 0.9375, 0.9, 0.925, 0.95, 1, 0.971428571428571, 0.95,
0.95, 1, 0.914285714285714, 0.95, 0.95, 0.95, 0.614285714285714,
0.775, 0.8, 0.575, 0.428571428571429, 0.575, 0.575, 0.45, 0.2,
0.375, 0.375, 0.4625, 0.971428571428571, 0.975, 0.975, 0.975,
0.9, 0.8, 0.8, 0.8625, 0.885714285714286, 0.9, 0.85, 0.8125,
0.2, 0.275, 0.3, 0.2875, 0.671428571428571, 0.775, 0.8, 0.875,
0.971428571428571, 0.95, 0.95, 1)), class = c("tbl_df", "tbl",
"data.frame"), row.names = c(NA, -124L))
Каждые четыре строки представляют значения для данного вопроса (для разных групп).Я хочу иметь возможность вычислять (DD - DR) и (RR - RD) для каждого набора из четырех строк и хранить каждый из них в двух отдельных столбцах.
Мне известна команда «diff», которая косвенно получит мне то, что, если я подгруппирую данные для включения только DD и DR, а другую - только для RD и RR, но я надеялся на более явнуюметод.
Результирующая таблица будет иметь четыре столбца (Treatment, Correct, DD-DR и RR-RD), а последние два столбца будут по существу представлять группировку по «вопросу» (каждые четыре строки) и явно приниматьразница между DD и DR и RR и RD.