将列名添加到矩阵的列

时间:2015-08-05 14:50:27

标签: r

我正在尝试将列名添加到10列乘100行矩阵test_matrix的列中,该列的每列填充了100个从runif()生成的随机数

test_matrix <- matrix(ncol = 10, nrow = 100)

for (i in 1:ncol(test_matrix)){
    test_matrix[, i] <- runif(100)
    colnames(test_matrix)[i] <- paste0("Column ", i)
}

我收到此错误:

Error in `colnames<-`(`*tmp*`, value = "Column 1") : 
length of 'dimnames' [2] not equal to array extent

为什么这不起作用?

1 个答案:

答案 0 :(得分:2)

test_matrix <- matrix(ncol = 10, nrow = 100)

colnames(test_matrix) <- paste0("Column", seq(ncol(test_matrix)))

> head(test_matrix)
       Column1 Column2 Column3 Column4 Column5 Column6 Column7 Column8 Column9 Column10
  [1,]      NA      NA      NA      NA      NA      NA      NA      NA      NA       NA
  [2,]      NA      NA      NA      NA      NA      NA      NA      NA      NA       NA
  [3,]      NA      NA      NA      NA      NA      NA      NA      NA      NA       NA
  [4,]      NA      NA      NA      NA      NA      NA      NA      NA      NA       NA
  [5,]      NA      NA      NA      NA      NA      NA      NA      NA      NA       NA
  [6,]      NA      NA      NA      NA      NA      NA      NA      NA      NA       NA