我对R相当陌生,需要一些帮助来reshape 一些数据.

目前,数据如下所示:

Column A Column B type Date
10 15 Type 1 Date 1
20 20 Type 2 Date 1
30 30 Type 1 Date 2
40 50 Type 2 Date 2

我们的目标是

Type 1-A Type 2-A Type 1-B Type 2-B Date
10 20 15 20 Date 1
30 40 30 50 Date 2

这看起来很简单,但我已经被困了几天.如有任何帮助,我们将不胜感激!

因为我还是个新手,我真的不知道从哪里开始.数据来self 制作的每小时运行一次的数据爬行器.我认为,如果我在第一次提取数据时就对数据进行reshape ,那就太好了.然而,我现在拥有数百小时的数据.

推荐答案

使用tidyr::pivot_wider,你可以:

dat <- data.frame(
  check.names = FALSE,
  "Column A" = c(10L, 20L, 30L, 40L),
  "Column B" = c(15L, 20L, 30L, 50L),
  type = c("Type 1", "Type 2", "Type 1", "Type 2"),
  Date = c("Date 1", "Date 1", "Date 2", "Date 2")
)

library(tidyr)

dat |> 
  tidyr::pivot_wider(
    names_from = type,
    values_from = -c(type, Date),
    names_glue = "{type}-{gsub('Column ', '', .value)}"
  )
#> # A tibble: 2 × 5
#>   Date   `Type 1-A` `Type 2-A` `Type 1-B` `Type 2-B`
#>   <chr>       <int>      <int>      <int>      <int>
#> 1 Date 1         10         20         15         20
#> 2 Date 2         30         40         30         50

R相关问答推荐

寻找图片边缘

更改绘图上的x轴断点,而不影响风险?

使用R中相同值创建分组观测指标

RStudio中相关数据的分组箱形图

从所有项的 struct 相同的两级列表中,将该第二级中的所有同名项绑定在一起

如何从R ggplot图片中获取SVG字符串?

如何对2个列表元素的所有组合进行操作?

在R中按行按列范围查找最大值的名称

在GG图中绘制射线的自动程序

如何创建累加到现有列累计和的新列?

如何在反曲线图中更改X标签

从线的交点创建面

计算Mean by分组和绑定到R中的数据集

如何在使用因子时获得Sankey图的Scale_Fill_Viridis的全范围

通过R:文件名未正确写入[已解决]将.nc文件转换和导出为.tif文件

如果满足条件,则替换列的前一个值和后续值

如何使用循环从R中的聚合函数创建列,而不会在名称中给出&q;$&q;?

合并多个数据帧,同时将它们的名称保留为列名?

动态统计函数在ShinyApp内部更改

如何修改Rust中的R字符串并将其赋给新的R变量,并使用extendr保留原始R字符串