Я пытаюсь определить переменную в цикле в г, используя функцию вставки, пример выглядит следующим образом:Определение переменной в цикле, используя пасту в г с SQLQuery
for (i in 1:length(XX)) {
(paste0("Test",Name[i],sep="")) <- sqlQuery(channel, paste("SampleQuery", sep = ""))
}
Я получаю следующая ошибка:
Error in (paste0("Test", Name[i], sep = "")) <- sqlQuery(channel, :
target of assignment expands to non-language object
Спасибо за любую помощь!
Кроме того, похоже, что вы собираете кучу одинаковых результатов, потому что ничего о 'sqlQuery (channel, paste (" SampleQuery ", sep =" ")) 'меняется между итерациями вашего цикла, как вы его написали. Но ваш вопрос касался главным образом назначения в переменной, поэтому я ограничил ответ на этот вопрос – arvi1000
Из-за моего желаемого вывода отдельных CSV-файлов и переменных, хранящихся в рабочей области, я применил assign(), аналогичный следующему коду: –
: for (i в 1: длина (XX)) { для (j в 1: длина (YY)) { Varname <- paste ("Test", XX [i], "_", YY [j], sep = " ") assign (Varname, sqlQuery (канал," SampleQuery ", sep =" "))) write.csv ((sqlQuery (канал," SampleQuery ", sep =" "))), paste (Varname,". csv ", sep =" "), row.names = FALSE) } } Я знаю, что это может быть не самым эффективным, но в настоящее время работает для моей ситуации. (мой «SampleQuery» содержит переменную с [i] и [j]) –