Изменить имя динамической переменной с помощью rxSetVarInfo

Попытка изменить имя переменной XDF с помощью rxSetVarInfo.

Я хочу объединить несколько наборов данных с общими именами переменных. (Я знаю, что rxMerge может / будет добавлять к именам файлов, где это необходимо. Я хочу иметь больше контроля, чем это.)

Это работает:

outLetter<- "A"
exp <- list(pct.A = list(newName = paste0("X.pct.",outLetter)))
rxSetVarInfo(varInfo = exp, data = tempXDFFile)

Вот где я знаю оригинальное имя столбца, pct.A, Что если это динамично? Что делать, если это в функции, которая вызывается несколько раз с разными outLetter"S. ("А" не является жестко закодированным.)
Это не работает:

function(outLetter){
  exp <- list(paste0("pct.",outLetter) = list(newName = paste0("X.pct.",outLetter)))
  rxSetVarInfo(varInfo = exp, data = tempXDFFile)
}

И не делает:

exp <- parse(text = exp)
rxSetVarInfo(varInfo = exp, data = tempXDFFile)

Да, я могу жестко закодировать все перестановки. Пытаюсь найти более элегантный подход.

1 ответ

Решение

Пожалуйста, попробуйте этот код:

dynamicName <- function(outLetter){
  exp <- vector(mode="list", length=1)
  names(exp) <- paste0("pct.",outLetter)
  exp[[paste0("pct.",outLetter)]] = list(newName = paste0("X.pct.",outLetter))
  rxSetVarInfo(varInfo = exp, data = tempXDFFile)
}

Перед вызовом rxSetVarInfo() "exp" содержит:

$pct.A
$pct.A$newName
[1] "X.pct.A"

Запустив ваше дело "это работает", я вижу:

> outLetter<- "A"
> exp <- list(pct.A = list(newName = paste0("X.pct.",outLetter)))
>
> exp
$pct.A
$pct.A$newName
[1] "X.pct.A"

Надеюсь это поможет!

Обратите внимание, пожалуйста, убедитесь, что ваша функция динамического именования имеет доступ к переменной "tempXDFFile", вы можете рассмотреть возможность ее передачи в качестве параметра, например:

dynamicName <- function(outLetter, data){
  exp <- vector(mode="list", length=1)
  names(exp) <- paste0("pct.",outLetter)
  exp[[paste0("pct.",outLetter)]] = list(newName = paste0("X.pct.",outLetter))
  rxSetVarInfo(varInfo = exp, data = data)
}
Другие вопросы по тегам