【发布时间】:2015-01-15 18:53:01
【问题描述】:
首先让我创建一些测试数据:
dat <- data.frame(Model_A=rnorm(10, 10), Model_B=rnorm(10, 12), Data_A=rnorm(10, 11),
Data_B=rnorm(10, 13))
# this produces the following
dat
Model_A Model_B Data_A Data_B
1 10.421684 13.201037 11.711313 13.18555
2 9.529258 11.086655 12.015787 14.13989
3 9.483633 10.697859 10.123176 15.50154
4 10.623490 11.171480 9.406222 12.56696
5 10.460739 10.925262 10.640612 11.98662
6 9.351494 10.276617 11.717629 13.00709
7 10.264206 11.587463 10.653878 13.33615
8 10.183569 13.187894 10.127552 13.87615
9 8.832003 9.739279 10.970686 13.26850
10 10.932207 11.974472 10.374939 12.11782
我想要做的是将所有列“堆叠”成两个列,称为“模型”和“数据”。列包含单个“模型”和“数据”列的每个唯一组合。我还想创建一个对数据进行分类的索引列。我要创建的数据集是:
Cat Model Data
Model_A_Data_A 10.421684 11.711313
Model_A_Data_A 9.529258 12.015787
Model_A_Data_A 9.483633 10.123176
Model_A_Data_A 10.62349 9.406222
Model_A_Data_A 10.460739 10.640612
Model_A_Data_A 9.351494 11.717629
Model_A_Data_A 10.264206 10.653878
Model_A_Data_A 10.183569 10.127552
Model_A_Data_A 8.832003 10.970686
Model_A_Data_A 10.932207 10.374939
Model_A_Data_B 10.421684 13.18555
Model_A_Data_B 9.529258 14.13989
Model_A_Data_B 9.483633 15.50154
Model_A_Data_B 10.62349 12.56696
Model_A_Data_B 10.460739 11.98662
Model_A_Data_B 9.351494 13.00709
Model_A_Data_B 10.264206 13.33615
Model_A_Data_B 10.183569 13.87615
Model_A_Data_B 8.832003 13.2685
Model_A_Data_B 10.932207 12.11782
Model_B_Data_A 13.201037 11.711313
Model_B_Data_A 11.086655 12.015787
Model_B_Data_A 10.697859 10.123176
Model_B_Data_A 11.17148 9.406222
Model_B_Data_A 10.925262 10.640612
Model_B_Data_A 10.276617 11.717629
Model_B_Data_A 11.587463 10.653878
Model_B_Data_A 13.187894 10.127552
Model_B_Data_A 9.739279 10.970686
Model_B_Data_A 11.974472 10.374939
Model_B_Data_B 13.201037 13.18555
Model_B_Data_B 11.086655 14.13989
Model_B_Data_B 10.697859 15.50154
Model_B_Data_B 11.17148 12.56696
Model_B_Data_B 10.925262 11.98662
Model_B_Data_B 10.276617 13.00709
Model_B_Data_B 11.587463 13.33615
Model_B_Data_B 13.187894 13.87615
Model_B_Data_B 9.739279 13.2685
Model_B_Data_B 11.974472 12.11782
我认为它必须能够使用 reshape 包中的一些工具来完成,但我无法理解如何使用“模型”和“数据”列的所有独特组合来获取索引列。
值得注意的是,我的实际数据集有 9 个“模型”列和 15 个“数据”列。
谢谢。
【问题讨论】:
-
您想要的输出是否与提供的数据集相对应?
-
啊,我刚刚意识到,在很长一段时间内我再次生成数据以创建所需的输出,这是我的错误。我现在会纠正这个问题。