當dimnames當前是NULL
時,是否可以每次更改一個矩陣的維數?當dimname爲NULL時,一次一個地命名矩陣維的元素
例如,失敗:
mtx <- matrix(1:16,4)
dimnames(mtx)[[2]][1] <- 'col1'
與Error in dimnames(mtx)[[2]][1] <- "col1" : 'dimnames' must be a list
但是這個工程:
mtx <- matrix(1:16,4)
dimnames(mtx)[[1]] <- letters[1:4]
dimnames(mtx)[[2]] <- LETTERS[1:4]
dimnames(mtx)[[2]][1] <- 'col1'
dimnames(mtx)[[2]][2] <- 'col2'
我的目標是seperately取代dimnames(mtx)[[2]][1]
和dimnames(mtx)[[2]][2]
等......如果這是不可能,我可以重新編寫循環。
感謝鄉親,我已經結束了與以下 - 我通過預先準備通過姓名:
mtxNameSticker <- function(mtx, prepend = NULL, MARGIN=2)
{
if (MARGIN == 1) max <- nrow(mtx) else
max <- ncol(mtx)
if (is.null(prepend)) if (MARGIN == 2) prepend <- 'C' else
prepend <- 'R'
if (length(prepend) == 1) prepend <- paste0(prepend, 1:dim(mtx)[[MARGIN]])
dimnames(mtx)[[MARGIN]] <- seq(from=1, by=1, length.out=dim(mtx)[[MARGIN]])
for (i in 1:max){
dimnames(mtx)[[MARGIN]][i] <- prepend[i]
}
return(mtx)
}
+1 /接受。非常感謝。我想要單獨的尺寸,所以我要去:'dimnames(mtx)[[i]] < - seq(from = 1,by = 1,length.out = dim(mtx)[[i ]])'。 – ricardo
@ricardo您還可以使用'seq_along(dim(mtx)[[i]])'而不是'seq(from = 1,by = 1,length.out = dim(mtx)[[i]])''。 –
謝謝。我認爲這隻會返回數字'1' – ricardo