R、 按名称访问矩阵的列向量

R、 按名称访问矩阵的列向量,r,matrix,attributes,R,Matrix,Attributes,在R中,我可以通过以下方式访问列矩阵的列向量中的数据: mat2[,1] mat2的每一列都有一个名称。如何使用name属性而不是[,1]从第一列检索数据 例如,假设我的第一列名为“saturn”。我想要像这样的东西 mat2[,1]==mat2[saturn]以下各项应能完成此任务: mat2[,'saturn'] 例如: > x <- matrix(1:21, nrow=7, ncol=3) > colnames(x) <- paste('name', 1:3)

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

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

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


mat2[,1]==mat2[saturn]
以下各项应能完成此任务:

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
>x colnames(x)x[,'name 1']
[1] 1 2 3 4 5 6 7
奖金信息(添加到第一个答案)

将返回两列,就好像您已经这样做了一样

x[,1:2]
最后,可以使用相同的操作来子集行

x[1:2,]
如果行被命名为

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

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

阅读文档,例如
?“[”
,或R的任何介绍。谢谢,我是R的初学者。只需添加列名是区分大小写的。只需添加列名也可以像mat2一样完成$saturn@SaqibMustafaAbbasi在R中,矩阵是原子对象,而不是递归对象。如果尝试对矩阵使用
$
,则会出现以下错误:
x[c('row 1','row 2'),]