【问题标题】:Transpose dataframe in R and changing columns names在 R 中转置数据框并更改列名
【发布时间】:2020-02-11 14:05:52
【问题描述】:

我想转置这个数据框:

所以我使用这行代码

perCountry <- data.frame(t(perEnergy))

我得到了这个结果:

但我希望它没有第一行 (X1,X2,X3...) 并且在这个位置带有国家名称。 我该怎么办?

【问题讨论】:

  • 请不要在此处发布数据图片。这里有一些关于如何制作minimal reproducible example 的绝妙技巧。这样你就可以帮助别人帮助你!

标签: r dataframe transpose


【解决方案1】:

问题是每个国家/地区会有两个不同的列:一个用于 %,一个用于 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)

很遗憾,我无法测试上述代码,因为您没有在问题中发布任何可用数据。

【讨论】:

    猜你喜欢
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2016-05-05
    • 2018-11-18
    相关资源
    最近更新 更多