Динамическая «строка» в R - PullRequest
3 голосов
/ 05 августа 2010

Простой вопрос, но не могу найти ответ.

Вместо:

Df <- sqlQuery(ch, "SELECT * FROM tblTest WHERE Id=25")

Я хочу более динамичный кусок кода. Что-то вроде:

Id <- 25
Df <- sqlQuery(ch, c("SELECT * FROM tblTest WHERE Id=", Id))

Но это не правильно.

Ответы [ 2 ]

5 голосов
/ 05 августа 2010

Мы можем использовать paste:

Df <- sqlQuery(ch, paste("SELECT * FROM tblTest WHERE Id =", Id))

c объединяет в вектор, paste для конкатенации строк.*

0 голосов
/ 19 апреля 2018

Если у вас есть несколько или повторно использованные аргументы и запрос, содержащий%, вы можете использовать что-то вроде следующего:

sprintf("SELECT * FROM test WHERE id = %1$s AND name = %2$s and type like ‘%%tall%%’”, id, name)
...