現在NULL
、dimnames が の場合、マトリックスの次元の名前を一度に 1 つずつ変更できますか?
たとえば、これは失敗します。
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'
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)
}