首页 > 解决方案 > 在 R 中透视特定列名

问题描述

我想在 R Studio 中有一个简单的数据框。我一直在使用 'gather()' 和 'spread()' 函数进行更复杂的转置,但我不知道如何进行更简单的转置。

我有以下数据:

structure(list(MeanExports = c(1581743294.4, 13114218975.85, 
376303283.26, 367309850000, 60019049993.7, 632530400000, 4276027773.125, 
3.63436e+11, 1530830933.675, 317033050000), Development = c("Less", 
"Less", "Less", "More", "More", "More", "Less", "More", "Less", 
"More")), row.names = c(331L, 2635L, 4363L, 13435L, 16171L, 16747L, 
17323L, 17755L, 18331L, 29563L), class = "data.frame")

我希望能够创建一个新的数据框,其中包含五行“更多开发”和“更少开发”列(每个类别有五个值)。对于更复杂的程序,网上有很多建议,但我相信会有一个我忽略的简单方法。任何帮助都会很棒。

标签: rdataframepivottranspose

解决方案


stack()并且unstack()是(经常被忽视的)基本 R 函数。

dfw <- unstack(df)
names(dfw) <- paste(names(dfw), 'Developed')

#   Less Developed More Developed
# 1     1581743294   367309850000
# 2    13114218976    60019049994
# 3      376303283   632530400000
# 4     4276027773   363436000000
# 5     1530830934   317033050000

推荐阅读