0

[マージのために]転置行列の最初の列にアクセスするにはどうすればよいですか? 転置された行列の列名は、どういうわけかアクセスできない行名になります。

例:

私は2つの行列を持っています:

mat1=data.frame(var=c('var1','var2','var3'),site1=1:3,site2=4:6)
mat2=data.frame(site=c('site1','site2'),newvar=1:2)

Mat 2 は mat1 とマージする必要があるため、mat1 を転置します。

mat11=t(mat1)

これで、最初の列にサイト名が保持され、他の列にパラメーターが保持される 2 つのマトリックスができました。転置後、最初の列の列ヘッダーは「row.names」と呼ばれます。マージのためにアクセスする方法がわかりません:

mat11[,1]

与えます: var site1 site2 "var1" "1" "4",

期待どおりではありません:row.names、var、site1、site2。

したがって、マージの正しい列に対処する手段がありません。これはどのように作動しますか?

ヘンク

4

1 に答える 1

0
newvars <- as.character(mat1$var)
newnames <- names(mat1)[2:3]

mat1data <- t(mat1[,2:3])

mat11 <- data.frame(newnames, mat1data, row.names=NULL)
names(mat11) <- c("sites", newvars)

mat11

  sites var1 var2 var3
1 site1    1    2    3
2 site2    4    5    6
于 2012-08-02T04:39:37.163 に答える