Если я правильно понимаю, ОП хочет изменить несколько столбцов значений из длинного в широкий формат.
Один из возможных подходов - использовать функцию reshape()
в базе R:
reshape(a3, v.names = c("Diag.MC.Code", "Diag.MC.Descr"), timevar = "Diag.No",
idvar = c("Emp.No", "Emp.Full.Name", "Case.No"), direction = "wide")
Emp.No Emp.Full.Name Case.No Diag.MC.Code.1 Diag.MC.Descr.1 Diag.MC.Code.2 Diag.MC.Descr.2
1 10034 Wayne, Bruce 78582 151.9 Stomach, unspecified <NA> <NA>
2 10034 Wayne, Bruce 87758 V70-V82 Tummy AChe 285.9 Anemia, unspecified
Обратите внимание, что имена столбцов были переименованы (сокращены), чтобы таблица результатов помещалась на странице.
Данные
a3 <- structure(list(Emp.No = c("10034", "10034", "10034"), Emp.Full.Name = c("Wayne, Bruce",
"Wayne, Bruce", "Wayne, Bruce"), Case.No = c("78582", "87758",
"87758"), Diag.No = c("1", "2", "1"), Diag.MC.Code = c("151.9",
"285.9", "V70-V82"), Diag.MC.Descr = c("Stomach, unspecified",
"Anemia, unspecified", "Tummy AChe")), row.names = c(NA, -3L), class = "data.frame")
# abbreviate column names to make result table fit on page
a3 <- setNames(a3, c("Emp.No", "Emp.Full.Name", "Case.No", "Diag.No",
"Diag.MC.Code", "Diag.MC.Descr"))