【问题标题】:Extract matrix column values by matrix column name按矩阵列名提取矩阵列值
【发布时间】:2011-08-10 07:45:47
【问题描述】:

是否可以从矩阵中按名称获取矩阵列?

我尝试了各种方法,例如myMatrix["test", ],但似乎没有任何效果。

【问题讨论】:

    标签: r matrix subset


    【解决方案1】:
    > myMatrix <- matrix(1:10, nrow=2)
    > rownames(myMatrix) <- c("A", "B")
    > colnames(myMatrix) <- c("A", "B", "C", "D", "E")
    
    > myMatrix
      A B C D  E
    A 1 3 5 7  9
    B 2 4 6 8 10
    
    > myMatrix["A", "A"]
    [1] 1
    
    > myMatrix["A", ]
    A B C D E 
    1 3 5 7 9 
    
    > myMatrix[, "A"]
    A B 
    1 2 
    

    【讨论】:

      【解决方案2】:

      是的。但是,如果您想要列,请将您的“测试”放在逗号之后...

      > A <- matrix(sample(1:12,12,T),ncol=4)
      
      > rownames(A) <- letters[1:3]
      
      > colnames(A) <- letters[11:14]
      > A[,"l"]
       a  b  c 
       6 10  1 
      

      另见help(Extract)

      【讨论】:

      • @Joris - 你知道,寻找 R 问题答案的棘手方面之一是该语言被命名为“R”。它让谷歌一举两得!我使用各种搜索词在上面搜索了我的问题,但一无所获。即使是在 SO 上提出简单的问题,它也很棒,因为 SO 被谷歌很好地索引 - 结果似乎总是排在首位。希望其他初学者能找到这个 =)
      • @SFun28 :检查 www.rseek.org 和例如这个问题:stackoverflow.com/questions/102056/… 但你是对的,这里也可以问一些简单的问题,虽然我会简单地把你送到 R 简介如果您是新用户。
      • @Joris - 甜! rseek 将非常有用。
      • @Joris,你可能忘记写了,as.numeric(A[,"l"])
      • @Frank 如果该矩阵中的值不是数字并且不应转换为数字,这将是一个错误的答案。问题是获取列,而不是尝试将其转换为数字。如果您想使用该技巧转换为矢量,则不必这样做。如果您选择单个列或行,R 会自动减小维度。您可以避免使用drop = FALSE 作为索引运算符[ 的额外参数,例如:A[,'l', drop = FALSE]
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      相关资源
      最近更新 更多