27 мая 2012 г., 06:14 отPeter Verbeet

используя «вставленное» имя внутри функции

У меня есть функция, которая вычисляет некоторые вещи, а затем назначает это матрице. Эта матрица получает свое имя из оператора вставки (на основе некоторых других текущих значений). Затем я хочу назначить имена матрицы на матрицу, но не знаю, как сделать понятным вставленное имя.

Вот что происходит:

function <- someComputations(labs) {
  ### bunch of computations, leading to X, Y, and Z:
  matName <- paste("rhoMat_", X, sep = "") # this yields rhoMat_15 if X equals 15
  assign(matName, Y %*% Z)
  assign(dimnames(matName), labs) # labs is a list of row labels and column labels
  return(matName)
}

Это хорошо работает, включая первый оператор присваивания, а затем ломается. Я пробовал все виды подходов, таких как eval (parse (text = matNum)), as.name (matNum), замещающий (matNum), но безрезультатно. Поскольку я не знаю фактического имени матрицы (поскольку matNum не указан), я не могу жестко закодировать имя в функцию - поэтому я застрял с именем ее символа matName. Как я могу заставить R понять, что я хочу установить dimname для матрицы rhoMat_15, а не matName?

Спасибо Питер

Ответы на вопрос(1)

27 мая 2012 г., 06:33 отblindjesse
dimnames(get(matName)) <- labs

ВАШ ОТВЕТ НА ВОПРОС