转置后访问矩阵的第一列?

时间:2012-07-23 12:53:31

标签: r merge indexing dataframe transpose

如何访问转置矩阵的第一列[用于合并]?转置矩阵的列名成为行名,我无论如何都无法访问。

示例:

我有两个矩阵:

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。

所以我无法解决合并的正确列。这是如何工作的?

亨克

1 个答案:

答案 0 :(得分: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