web-dev-qa-db-ja.com

R、名前で行列の列ベクトルにアクセス

Rでは、次の方法で列行列の列ベクトルのデータにアクセスできます。

mat2[,1]

mat2の各列には名前があります。 [,1]の代わりにname属性を使用して、最初の列からデータを取得するにはどうすればよいですか?

たとえば、最初の列の名前が「saturn」だったとします。みたいなものが欲しい

mat2[,1] == mat2[saturn]

19

次のようにしてください。

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
20
NPE

ボーナス情報(最初の回答に追加)

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

あなたがやったかのように2つの列を返します

x[,1:2]

最後に、同じ操作を使用して行をサブセット化できます

x[1:2,]

行に名前が付けられている場合...

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

インデックス内の角括弧内のコンマの位置に注意してください。

13
ndoogan