【发布时间】:2014-11-11 22:24:28
【问题描述】:
这似乎不可能,所以我的猜测是我正在考虑如何不正确地处理我的数据,而不仅仅是我找不到按照我设想的方式处理它的方法。 我想创建一个 3 维数组;我认为这就像一个关系数据库。所有维度将具有相同的行数,但它们具有不同的列数。 例如,
- 维度 1 = 1 列,20 个唯一位置标识符(行)
- 维度 2 = 3 列与 20 个独特位置(行)相关的非生物变量
- 维度 3 = 2 列与 20 个独特位置(行)相关的生物变量
我认为这将是设置我的数据的最佳方式,这样我就可以轻松地浏览每一列,并且只需使用下标就可以轻松地在非生物或生物中组合(例如,我可以将一个函数应用于所有变量(列)在第二(非生物)维度中(例如,dat[,,2] = log(dat[,,2]),这可能与我想对所有生物变量做的事情不同。
这不是一个治疗组类型的分析,所以我不想要堆叠数据(我重复独特的位置 5 次,每个位置有多个治疗选项 - 这对我来说没有意义,例如,
loc type var
1 ab 1
1 ab 2
1 ab 3
1 bi 1
1 bi 2
我对这些数据的思考方式感到困惑。过去我一直使用数组,并且下标对我来说非常直观。您确实可以制作一个在每个维度中具有不同列数的数组吗?如果没有,我对如何处理这些数据缺少什么? 感谢您的任何想法。
【问题讨论】:
-
为什么维度 1 是它自己的东西?我不明白您可能对 20 个唯一位置标识符(1:20?)应用什么样的功能,您不希望影响具有相同唯一位置的其他维度。对我来说,它看起来像一个宽或长的 data.frame。 data.frame(loc,ab1,ab2,ab3,bi1,bi2) 有 20 行或您不想要的长版本。如果您想要 ab
-
@MfFlick - 感谢您的编辑...
-
@BrodieG,我想我不小心删除了你的评论。道歉 - 我通常不那么笨拙。我想也许我只是自学了使用数组,现在是时候扩展了。这只是一个非常长的数据集;我发现数组更紧凑。我会用数据表重做这个。谢谢!
-
@ARobertson,例如,生物数据显然是对数分布的,而非生物数据则不是。但更重要的是,这一切都是为了进行一组或“稳健性”测试,我们通过“类型”遍历各种“指标”的所有组合,对我来说,我可以通过维度上的几个 for 循环轻松做到这一点和变量。我确信它可以使用表格来完成,但它对我来说几乎没有那么直观。具有单独矩阵的列表可能是执行此操作的方法,您是对的。我会试试的。谢谢。