在R中创建具有不同列数的数组

时间:2014-11-11 22:24:28

标签: arrays r

这似乎不太可能,所以我的猜测是我正在考虑如何错误地处理我的数据,而不仅仅是因为我找不到按照我想象的方式处理它的方法。 我想创建一个三维数组;我认为这就像一个关系数据库。所有维度都具有相同的行数,但它们具有不同的列数。 例如,

  • 维度1 = 1列,20个唯一位置标识符(行)
  • 维2 =与20个独特位置(行)相关的3列非生物变量
  • 维3 =与20个唯一位置(行)相关联的2列生物变量

我认为这将是设置我的数据的最佳方式,这样我就可以轻松地浏览每一列,并且只需使用下标即可轻松地在非生物或生物中结合(例如,我可以在所有变量(列)中应用函数在第二(非生物)维度(例如,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 个答案:

答案 0 :(得分:0)

是。您可以按照

的描述进行操作
# build a 20 x 3 x 2 array
dat <- array(data, c(20,3,2))
# example of applying functions on a given dimension
log(dat[,,2])

不要求阵列的尺寸大小相等。