R查找多维数组尺寸大小

时间:2016-01-26 03:24:23

标签: r matrix

一般相关问题

有人可以指点函数/方法来获取R中多维列表或数据结构的尺寸大小吗?

知道在这个更大的数据结构中访问各个元素的方法也很有用吗?

关于下面的示例输入和输出数据的问题

使用此命令将输入​​数据转换为输出数据:(以下相关问题):

lst <- lapply(split(df2[-1], df2$Column_Zero), function(x) 
         acast(x, Column_Two~Column_One,value.var="Column_Three"))
  1. 创建了多少个矩阵?
  2. 如何访问创建的每个子矩阵的名称?
  3. 每个子矩阵有多少列?
  4. 每个子矩阵有多少行?
  5. 哪个子矩阵具有最大/最小列/行数?
  6. 输入数据:

    Column_Zero, Column_One, Column_Two, Column_Three
    
    XX,A, 1, 4
    XX,A, 2, 3
    XX,A, 3, 77
    XX,B, 1, 44
    XX,B, 2, 32
    XX,B, 3, 770
    XX,C, 1, 43
    XX,C, 2, 310
    XX,C, 3, 68       
    YY,A1, 1, 4
    YY,A1, 2, 3
    YY,A1, 3, 77
    YY,B1, 1, 44
    YY,B1, 2, 32
    YY,B1, 3, 770
    YY,C1, 1, 43
    YY,C1, 2, 310
    YY,C1, 3, 68 
    YY,D2, 1, 4
    YY,D2, 2, 5
    YY,D2, 3, 6 
    

    ---------等等-----

    输出数据:

    ------数据表一------

    A, B, C
    4, 44, 43
    3, 32, 310
    77, 770, 68
    

    ------数据表二------

    A1, B1, C1, D2
    4, 44, 43,4
    3, 32, 310,5
    77, 770, 68,6
    

    ------等等-----

    相关问题: 这出现在相关问题中,我们将分割数据表并对其进行重新整理。因此,了解较小的数据结构/矩阵或数据表的大小非常重要。

    R convert Datatable distinct column values to column names and column values as values from another column

    如果有任何不清楚或需要任何进一步的信息,请告诉我。

2 个答案:

答案 0 :(得分:0)

# Is this what you need to see?
k <- 1:60
# data structure with three dimensions
dim(k) <- c(3,4,5)
# Question 1: see the dimensions of k
dim(k)
# Question 2: show a two dimensional part of k
k[,,1]

答案 1 :(得分:0)

问题的答案是

  1. 创建了多少个矩阵?
  2. 由于每个list元素都是matrix,我们可以使用length来查找matrices的数量

    length(lst)
    #[1] 2
    

    如果有其他对象(在一般情况下)

    sum(sapply(lst, is.matrix))
    #[1] 2
    
    1. 如何访问创建的每个子矩阵的名称?
    2. 我们可以使用names

      names(lst)
      
      1. 每个子矩阵有多少列?
      2. 我们可以通过循环lst

        找到答案
        sapply(lst, ncol)
        #   XX YY 
        #   3  4 
        
        1. 每个子矩阵有多少行?
        2. ncol替换为nrow与上述相同。我们可以使用dim

          来获取这两者
          lapply(lst, dim)
          
          1. 哪个子矩阵具有最大/最小列/行数?
          2. 我们可以使用which.minwhich.max在循环查看&#39;之后查找索引。

            lst[which.min(sapply(lst, ncol) )]
            lst[which.max(sapply(lst, ncol))]
            

            可以对nrow

            进行同样的操作