Arrays R中的多维数据结构管理

Arrays R中的多维数据结构管理,arrays,r,matrix,Arrays,R,Matrix,我关心数据组织和简化某些多层数据的最佳方法。简单地说,我有10个小木梁(BeamID,~10)的复制品,经过10种不同的处理(TreatID,~10),每个木梁都进行了荷载测试,产生了一系列荷载数据,产生了相应的位移(每次测试10到50行;我有代码修正了行长度的差异)。每根木梁都要进行多次测试(重复约10次) 我的计划是将所有这些数据整合到一个5-D阵列中: Array[Load, Deflection, BeamID, TreatID, Rep] 通过这种方式,我应该能够通过使用数组[,1,

我关心数据组织和简化某些多层数据的最佳方法。简单地说,我有10个小木梁(BeamID,~10)的复制品,经过10种不同的处理(TreatID,~10),每个木梁都进行了荷载测试,产生了一系列荷载数据,产生了相应的位移(每次测试10到50行;我有代码修正了行长度的差异)。每根木梁都要进行多次测试(重复约10次)

我的计划是将所有这些数据整合到一个5-D阵列中:

Array[Load, Deflection, BeamID, TreatID, Rep]
通过这种方式,我应该能够通过使用数组[,1,1,]为给定的BeamID,TreatID,绘制所有重复的荷载-挠度曲线,对吗?因此,数组[,1,1,1]的假设输出为:

+------------+--------+-----+
| Deflection |  Load  | Rep |
+------------+--------+-----+
| 0          | 0      |   1 |
| 6.35       | 10.5   |   1 |
| 12.7       | 20.8   |   1 |
| 19.05      | 45.3   |   1 |
| 25.4       | 75.2   |   1 |
+------------+--------+-----+
+------------+--------+-----+
| Deflection |  Load  | Rep |
+------------+--------+-----+
| 0          | 0      |   2 |
| 7.3025     | 12.075 |   2 |
| 14.605     | 23.92  |   2 |
| 21.9075    | 52.095 |   2 |
| 29.21      | 86.48  |   2 |
+------------+--------+-----+
数组[,1,1,2]是:

+------------+--------+-----+
| Deflection |  Load  | Rep |
+------------+--------+-----+
| 0          | 0      |   1 |
| 6.35       | 10.5   |   1 |
| 12.7       | 20.8   |   1 |
| 19.05      | 45.3   |   1 |
| 25.4       | 75.2   |   1 |
+------------+--------+-----+
+------------+--------+-----+
| Deflection |  Load  | Rep |
+------------+--------+-----+
| 0          | 0      |   2 |
| 7.3025     | 12.075 |   2 |
| 14.605     | 23.92  |   2 |
| 21.9075    | 52.095 |   2 |
| 29.21      | 86.48  |   2 |
+------------+--------+-----+
我认为我可以将其作为一个更简单的“融化”数据帧,其中包含用于加载和偏转的列,并且将为测试输出的每一行重复BeamID、TreatID和Rep

+------------+--------+-----+--------+---------+
| Deflection |  Load  | Rep | BeamID | TreatID |
+------------+--------+-----+--------+---------+
| 0          | 0      |   1 |      1 |       1 |
| 6.35       | 10.5   |   1 |      1 |       1 |
| 12.7       | 20.8   |   1 |      1 |       1 |
| 19.05      | 45.3   |   1 |      1 |       1 |
| 25.4       | 75.2   |   1 |      1 |       1 |
| 0          | 0      |   2 |      1 |       1 |
| 7.3025     | 12.075 |   2 |      1 |       1 |
| 14.605     | 23.92  |   2 |      1 |       1 |
| 21.9075    | 52.095 |   2 |      1 |       1 |
| 29.21      | 86.48  |   2 |      1 |       1 |
+------------+--------+-----+--------+---------+
然而,对于后者,我不确定如何轻松、离散地提取特定BeamID和TreatID的所有Rep测试值,特别是因为我使用线性模型拟合特定测试的三阶多项式以提取曲线的斜率。将它作为一个连续的数据帧意味着我必须指定开始点和停止点来启动线性模型,对吗


想法、建议?我使用5-D阵列的方向正确吗?R对我来说是一种新的编程语言,请原谅我的误解。

你能用
dput
函数提供你的示例数据吗?我推荐长的“融化”形式。稍后将其分组并分别在这些组上运行您的模型相对简单。查看
扫帚
软件包。这里有一个使用中的例子:我建议您阅读Hadley Wickham()的论文“tidy data”,它帮助我思考了很多关于我的数据结构的问题谢谢@Matifou,这非常有用。