如何在具有多个嵌套组类别的单列(长)中制作数据

How to make data in a single column (long) with multiple, nested group categories wide

我有一大堆数据,正在尝试有效地整理它们。现在,这是我的 data.frame 一般格式的简化简短示例。主要区别在于,我的抽样单元有更多数据标签,例如 Label1 - 每个标签都有一组类似于我包含的 data.frame 的数据,但在我的情况下,它们都在相同 data.frame。我认为这不会使重新格式化复杂化,所以我只是在此处包含模拟数据的单个采样单元。 StatsType 级别 AveMaxMin 有效地嵌套在 MeasureType.

tastycheez<-data.frame(
  Day=rep((1:3),9),
  StatsType=rep(c(rep("Ave",3),rep("Max",3),rep("Min",3)),3),
  MeasureType=rep(c("Temp","H2O","Tastiness"),each=9),
  Data_values=1:27,
  Label1=rep("SamplingU1",27))

最终,我想要一个数据框,其中每个抽样单元和每个 Day 都有包含我的类别的 Data_values 的列,如下所示:

 Day     Label1   Ave.Temp Ave.H2O Ave.Tastiness  Max.Temp ...
 1   SamplingU1          1      10            19         4 ...
 2   SamplingU1          2      11            20         5 ...

我认为 reshapedplyrtidyr、and/or data.table 的一些函数组合可以完成这项工作,但我想不出来了解如何对其进行编码。这是我尝试过的:

首先,我 spread tastycheez(嗯!),这让我中途:

test<-spread(tastycheez,StatsType,Data_values)

现在我正在尝试 spreadcast,但没有成功:

test2<-spread(test,MeasureType,(Ave,Max,Min))

test2 <- recast(Day ~ MeasureType+c(Ave,Max,Min), data=test)

(我也试过 melting tastycheez 结果是粘糊糊的,粘糊糊的,我的舌头被烧焦了。 没有似乎是这个的正确功能。)

如果你讨厌我的双关语,请原谅,我真的想不通!

这里有几个相关的问题: Combining two subgroups of data in the same dataframe

reshape2 您可以使用 reshape2:

中的 dcast
library(reshape2)
dcast(tastycheez, 
  Day + Label1 ~ paste(StatsType, MeasureType, sep="."), 
  value.var = "Data_values")

这给出了

  Day     Label1 Ave.H2O Ave.Tastiness Ave.Temp Max.H2O Max.Tastiness Max.Temp Min.H2O Min.Tastiness Min.Temp
1   1 SamplingU1      10            19        1      13            22        4      16            25        7
2   2 SamplingU1      11            20        2      14            23        5      17            26        8
3   3 SamplingU1      12            21        3      15            24        6      18            27        9

tidyr 窃取@DavidArenburg 的评论,这里是 tidyr 方式:

library(tidyr)
tastycheez %>%
       unite(temp, StatsType, MeasureType, sep = ".") %>% 
       spread(temp, Data_values)

这给出了

  Day     Label1 Ave.H2O Ave.Tastiness Ave.Temp Max.H2O Max.Tastiness Max.Temp Min.H2O Min.Tastiness Min.Temp
1   1 SamplingU1      10            19        1      13            22        4      16            25        7
2   2 SamplingU1      11            20        2      14            23        5      17            26        8
3   3 SamplingU1      12            21        3      15            24        6      18            27        9