【问题标题】:Pivoting in R for a specific column name [duplicate]在 R 中旋转特定列名 [重复]
【发布时间】:2021-01-28 10:12:23
【问题描述】:

我想在 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")

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

【问题讨论】:

  • df %>% group_by(Development) %>% mutate(row = row_number()) %>% pivot_wider(names_from = Development, values_from = MeanExports)

标签: r dataframe pivot transpose


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 2015-04-15
    • 2022-07-28
    • 2017-11-18
    • 2019-06-20
    相关资源
    最近更新 更多