【问题标题】:How to rearrange/tidy column in R data frame?如何重新排列/整理 R 数据框中的列?
【发布时间】:2020-11-26 14:08:43
【问题描述】:

假设我们有这个数据集,其中avg_1avg_2avg_3 重复:

avg_1  avg_2  avg_3  party_gender
424    242    213    RM
424    242    213    RF
424    242    213    DM

如何使用 R 编辑它,使数据集看起来像这样(平均值不重复,avg_1avg_2avg_3 对应于 RMRFDM分别):

avg  party_gender
424  RM
242  RF
213  DM

【问题讨论】:

  • df %>% select('avg' = avg_1, party_gender) 其中 df 是您的数据框
  • 这只给出了 avg_1 的值。

标签: r tidyverse


【解决方案1】:

诚然,这有点笨拙,如果您对 avg 有多个条件,则效果不佳。价值:

library(tidyverse)
dat %>%
  pivot_longer(-party_gender) %>%
  filter(party_gender == "RM" & value == 424 |
         party_gender == "RF" & value == 242 |
         party_gender == "DM" & value == 213) %>%
  mutate(name = "avg") %>% 
  pivot_wider()

给出:

# A tibble: 3 x 2
  party_gender   avg
  <chr>        <dbl>
1 RM             424
2 RF             242
3 DM             213

【讨论】:

    猜你喜欢
    • 2013-07-03
    • 2012-10-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 2010-11-13
    相关资源
    最近更新 更多