У меня есть набор данных эксперимента, в котором участникам было назначено одно из четырех процедур.То, как данные организованы в наборе данных, есть отдельный набор переменных для каждой обработки, поэтому для каждой строки один набор столбцов (для обработки, которую они видели) имеет действительные значения, а остальные три набора столбцов (для трехобработки, которые они не видели) все пусты.
Я хотел бы изменить порядок данных таким образом, чтобы:
В одной новой колонке указывалось, какой обработке назначен каждый участник (т. е. какой набор столбцов имеет допустимые значения для этой строки)
Новый набор столбцов сообщает действительные значения для столбцов обработки, которой участник был назначен
В настоящее время мой набор данных похож на тот, который сгенерирован этим кодом:
T1a <- c(1, NA, NA, NA)
T1b <- c(2, NA, NA, NA)
T2a <- c(NA, NA, 3, NA)
T2b <- c(NA, NA, 4, NA)
T3a <- c(NA, 0, NA, NA)
T3b <- c(NA, 5, NA, NA)
T4a <- c(NA, NA, NA, 4)
T4b <- c(NA, NA, NA, 2)
data <- rbind(data.frame(T1a, T1b, T2a, T2b, T3a, T3b, T4a, T4b))
> data
T1a T1b T2a T2b T3a T3b T4a T4b
1 1 2 NA NA NA NA NA NA
2 NA NA NA NA 0 5 NA NA
3 NA NA 3 4 NA NA NA NA
4 NA NA NA NA NA NA 4 2
Я хотел бы изменить порядок данных следующим образом:
> data2
Tr a b
1 1 1 2
2 3 0 5
3 2 3 4
4 4 4 2
Я знаю, что яМожно было бы сделать это вручную, создав новые столбцы и присвоив им соответствующие значения столбцов, не пропуская данные в каждой строке, но мне было интересно, есть ли более быстрыйБолее элегантный способ сделать это.
Большое спасибо заранее за вашу помощь!