簡體   English   中英

R中的動態“字符串”

[英]Dynamic "string" in R

簡單的問題,卻找不到答案。

代替:

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

我想要一段更動態的代碼。 就像是:

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

但這是不正確的。

我們可以使用粘貼:

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

c連接成一個向量, paste用於字符串連接。

或者我們可以使用 sprintf:

sprintf("SELECT * FROM tblTest WHERE Id = %s", Id)

使用glue_sql() 例子:

Id <- 25

Df <- sqlQuery(ch, glue_sql("SELECT * FROM tblTest WHERE Id= {Id}", .con = ch))

更多信息在這里

如果您有多個或重復使用的參數以及包含 % 的查詢,您可以使用以下內容:

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

只想使用 dplyr/tidyverse 使用更現代的答案更新它,該答案通過str_glue命令使用字符串插值:

str_glue("SELECT * FROM tblTest WHERE Id = {Id}")

你可以在里面放任何你想要的表情。 例如,如果您想使用向量選擇多個 Id:

str_glue("SELECT * FROM tblTest WHERE Id IN ({str_c(id_vector, collapse = \",\"})")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM