2013-03-08 149 views
12

訪問矩陣的列向量。在R I可以通過以下操作來訪問在列矩陣的列向量中的數據:R,按名稱

mat2[,1] 

mat2每列都有一個名稱。如何使用name屬性而不是[,1]從第一列中檢索數據?

例如,假設我的第一列名稱爲「saturn」。我想是這樣

mat2[,1] == mat2[saturn]

+0

閱讀文檔,例如「?」[「',或任何R的介紹。 – Roland 2013-03-08 16:34:12

回答

16

下應該這樣做:

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 
+0

謝謝,我是R的初學者,也只是爲了添加列名區分大小寫。 – 2016-09-18 04:25:20

+0

只需添加它也可以像mat2 $ saturn – 2016-09-18 14:38:30

+0

@SaqibMustafaAbbasi在R中完成,矩陣是原子的,而不是遞歸對象。如果你嘗試在矩陣上使用'$',你應該得到這個錯誤:https://stackoverflow.com/questions/23299684/r-error-in-xed-operator-is-invalid-for-atomic-vectors# 23299802 – Dmitri 2017-05-26 19:39:41

11

贈品信息(增加了第一個答案)

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

將返回兩列就好像你做了

x[,1:2] 

最後,相同的操作可以用來子集行

x[1:2,] 

如果行被評爲...

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

請注意逗號在括號內和相對於索引的位置。