Проблема в том, что у вас будет два разных столбца для каждой страны: один для% и один для MW. Может быть проще работать, если у вас есть два разных фрейма данных:
percentages <- data.frame(t(perEnergy[perEnergy$a == "%",]))
MW <- data.frame(t(perEnergy[perEnergy$a == "[MW]",]))
Вы можете превратить первую строку в имена столбцов, например:
names(percentages) <- percentages[1,]
names(MW) <- MW[1,]
Затем удалите нежелательные сначала строка, подобная этой:
percentages <- percentages[-1,]
MW <- MW[-1,]
Наконец, если вы хотите снова соединить их, вам понадобятся уникальные имена строк. Вы можете сделать что-то вроде этого:
rownames(percentages) <- paste0(rownames(percentages), "_percent")
rownames(MW) <- paste0(rownames(MW), "_MW")
, чтобы, наконец, вы могли объединить два кадра данных:
perCountry <- rbind(percentages, MW)
К сожалению, я не могу протестировать приведенный выше код, так как вы не опубликовали ни одного полезные данные в вашем вопросе.