首页 > 解决方案 > 在R中的多维数组中删除一层命名

问题描述

比较以下数组:

> str(arr)
 num [1:77, 1:65, 1:40] NA NA NA NA NA NA NA NA NA NA ...
 - attr(*, "dimnames")=List of 3
  ..$ : chr [1:77] "2020-04-15T00:29:00.000000000+00:00" "2020-04-15T00:33:00.000000000+00:00" "2020-04-15T00:43:00.000000000+00:00" "2020-04-15T00:48:00.000000000+00:00" ...
  ..$ : chr [1:65] "1" "2" "3" "4" ...
  ..$ : chr [1:40] "v_1" "v_2" "v_3" "v_4" ...
> str(arr1)
 num [1:77, 1:65, 1:40] NA NA NA NA NA NA NA NA NA NA ...
 - attr(*, "dimnames")=List of 3
  ..$ mynano  : chr [1:77] "2020-04-15T00:29:00.000000000+00:00" "2020-04-15T00:33:00.000000000+00:00" "2020-04-15T00:43:00.000000000+00:00" "2020-04-15T00:48:00.000000000+00:00" ...
  ..$ mycat   : chr [1:65] "1" "2" "3" "4" ...
  ..$ values  : chr [1:40] "v_1" "v_2" "v_3" "v_4" ...

可以看到arr1多了一层名字,即:mynano, mycat, and values, 而arr没有。

如何从中删除这些名称arr1,同时将暗名称保留在其下方,如arr

标签: rarraysmultidimensional-array

解决方案


在您的第二个示例中,dimnames您的数组是一个命名列表,因此您必须删除此列表的名称:

names(dimnames(arr1)) <- NULL

推荐阅读