2016-04-07 35 views
0

如何在R数组中标注尺寸? (注意:我说的不是“你怎么标签上的每个维度中轴线的每一点!)例如,假设我创建了以下矩阵:R中多维数组暗淡名称的“轴”名称

foo <- array(NA, dim = c(2, 2, 2), dimnames = list(c(1, 2), c(3, 4), c(5, 6))) 

我想第一个维度被标记为“foo”,第二个维度被标记为“bar”,第三个维度被标记为“baz”,以便foo的用户可以立即看到每个维度代表的内容。

我知道的解决方法是将数据作为数据框返回,使用列名来标注各种维度,但由于各种原因,我宁愿将数据保持为非规格化(是正确的方向?),因为pos锡布尔赫丁。

谢谢!

回答

1

我会做到以下几点:

dims = dim(foo) 
dim_names = c("foo", "bar", "baz") 

dimnames(foo) = 
    lapply(seq_along(dims), 
     function(ii) 
      paste0(dim_names[ii], seq(to = cumsum(dims)[ii], 
            length.out = dims[ii]))) 

foo 
# , , baz5 
# 
#  bar3 bar4 
# foo1 NA NA 
# foo2 NA NA 
# 
# , , baz6 
# 
#  bar3 bar4 
# foo1 NA NA 
# foo2 NA NA