【问题标题】:How can values from the same column that are assigned to the same group be placed in separate columns in R?如何将同一列中分配给同一组的值放在 R 中的不同列中?
【发布时间】:2022-08-09 21:45:19
【问题描述】:

假设我有一个给定的数据框 df,它看起来像这样:

df
   Group <- c(\"A\",\"B\",\"C\",\"D\",\"E\",\"B\",\"D\",\"E\")
   Value <- c(2,3,2,2,1,5,4,4)
    
df <- data.frame(Group, Value)

df
  Group Value
1    A     2
2    B     3
3    C     2
4    D     2
5    E     1
6    B     5
7    D     4
8    E     4

我想在Group 中查找重复项,然后将与Group 一起使用的两个Values 放在单独的列中。 我还想删除任何行或Group,只有一个Value(每组)。

因此,在这种情况下,生成的数据框将如下所示:

new_df
  Group Value1 Value2
1    B      3      5
2    D      2      4
3    E      1      4

如果有人可以帮助我,我会很高兴!

非常感谢您!

    标签: r


    【解决方案1】:

    使用dplyrtidyr

    library(dplyr)
    library(tidyr) # pivot_wider
    df %>%
      group_by(Group) %>%
      mutate(rn = paste0("Value", row_number())) %>%
      filter(n() > 1) %>%
      ungroup() %>%
      pivot_wider(Group, names_from = rn, values_from = Value)
    # # A tibble: 3 x 3
    #   Group Value1 Value2
    #   <chr>  <dbl>  <dbl>
    # 1 B          3      5
    # 2 D          2      4
    # 3 E          1      4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      • 2015-05-09
      • 2019-10-08
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 2021-06-13
      相关资源
      最近更新 更多