【问题标题】:R, accessing a column vector of a matrix by name [duplicate]R,按名称访问矩阵的列向量[重复]
【发布时间】:2013-03-08 15:41:21
【问题描述】:

在 R 中,我可以通过以下方式访问列矩阵的列向量中的数据:

mat2[,1]

mat2 的每一列都有一个名称。如何使用 name 属性而不是 [,1] 从第一列中检索数据?

例如,假设我的第一列名为“saturn”。我想要类似的东西

mat2[,1] == mat2[saturn]

【问题讨论】:

  • 阅读文档,例如?"[",或任何对 R 的介绍。

标签: r matrix attributes


【解决方案1】:

以下应该这样做:

mat2[,'saturn']

例如:

> x <- matrix(1:21, nrow=7, ncol=3)
> colnames(x) <- paste('name', 1:3)
> x[,'name 1']
[1] 1 2 3 4 5 6 7

【讨论】:

  • 谢谢,我是 R 的初学者。也只是要添加列名区分大小写。
  • 只添加也可以像mat2$saturn一样
  • @SaqibMustafaAbbasi 在 R 中,矩阵是原子的,而不是递归对象。如果你尝试在矩阵上使用$,你应该得到这个错误:stackoverflow.com/questions/23299684/…
【解决方案2】:

奖励信息(添加到第一个答案)

x[,c('name 1','name 2')]

将返回两列,就像你已经完成一样

x[,1:2]

最后,可以使用相同的操作对行进行子集化

x[1:2,]

如果行被命名...

x[c('row 1','row 2'),]

注意逗号在括号内的位置以及相对于索引的位置。

【讨论】:

    猜你喜欢
    • 2018-07-14
    • 2012-02-03
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多