问题是每个国家/地区会有两个不同的列:一个用于 %,一个用于 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)
很遗憾,我无法测试上述代码,因为您没有在问题中发布任何可用数据。