r - 如何对数据帧进行分组,然后在 R 中转置和 rbind 组?

标签 r dplyr reshape

library(dplyr)
sample.df <- data.frame(group.column = c("first_a","first_b","first_c","first_d",
                       "second_a","second_b","second_c","second_d",
                       "third_a","third_b","third_c","third_d"),
           value.column.first = 1:12,
           value.column.second = 13:24)

我创建了一个缓冲区列,并尝试了下面的代码,但没有用。

sample.df %>% mutate(buffer = `group.column` %>% strsplit(split="_") %>% lapply(function(x) {x[1]}) %>% unlist) %>% group_by(buffer) %>% t %>% rbind

我想要这张 table

<表类=“s-表”> <标题> 标题 a.1 a.2 b.1 b.2 c.1 c.2 d.1 d.2 <正文> 首先 1 13 2 14 3 15 4 16 第二次 5 17 6 18 7 19 8 20 第三个 9 21 10 22 11 23 12 24

我应该做什么?

最佳答案

分隔您的组列,并使用pivot_wider:

library(tidyr)
library(dplyr)
sample.df %>% 
  separate(group.column, into = c("A header", "name")) %>% 
  pivot_wider(values_from = c(value.column.first, value.column.second),
              names_glue = "{name}.{match(.value, unique(.value))}",
              names_vary = "slowest")

# A tibble: 3 × 9
  `A header`   a.1   a.2   b.1   b.2   c.1   c.2   d.1   d.2
  <chr>      <int> <int> <int> <int> <int> <int> <int> <int>
1 first          1    13     2    14     3    15     4    16
2 second         5    17     6    18     7    19     8    20
3 third          9    21    10    22    11    23    12    24

说明:

  • separate 将 group.column 字符串分为两列,一列称为 A header,其中包含第一部分(第一、第二、第三),另一列称为 名称a、b、c...。我将其称为 name,因为这是 pivot_widernames_from 参数的默认值。
  • pivot_wider中,名称取自name,值取自值列。列的名称由 name 值 (a, b, c) 组成,而 match(.value, unique(.value)) 是获取2 个 .value 列中每一列的位置。 names_vary = "slowest" 用于使列顺序正确。

关于r - 如何对数据帧进行分组,然后在 R 中转置和 rbind 组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75081806/

相关文章:

r - 无法安装 'rstudio/keras'

regex - 使用gsub删除多个空格和尾部空格

r - 我可以使用 dplyr::mutate 计算方差吗?

r - 计数对字符向量内容的更改

r - 使用 cast () 后 R 中出现意外的数字常量

r - 用自己的 geoms 扩展 ggplot : Adapt default scale

r - 你能在 dplyr 链中使用 data.frame 两次吗? dplyr 说 "Error: cannot handle "

R:使用ggplot2绘制各组之间差异的facet_grid图

r - 编写在 dplyr::mutate() 内部工作的自定义函数

替换 R 中的 NA - 适用于练习数据集,但在应用于实际数据时会发出警告消息