Как уже упоминалось в комментариях, вы не можете иметь повторяющиеся имена строк в кадре данных, но если вам это нужно, вы можете иметь их в матрице.
mat <- matrix(unlist(samp[-1]), ncol = ncol(samp) - 1,
dimnames = list(samp$names, names(samp[-1])))
mat
# Var.1 Var.2 Var.3
#A 1 5 0
#B 2 4 1
#C 3 3 2
#A 4 2 3
#B 5 1 4
Здесь мы используем -1 для удаления первого столбца из кадра данных.
data
samp <- structure(list(names = c("A", "B", "C", "A", "B"), Var.1 = 1:5,
Var.2 = 5:1, Var.3 = 0:4), row.names = c(NA, -5L), class = "data.frame")