提问人:J.Sabree 提问时间:4/20/2022 更新时间:4/28/2022 访问量:219
如何强制 r 打印带单引号的字符串?
How do I force r to print character strings with single quotes?
问:
我正在编写一些与 SQL 接口的代码,我需要用单引号打印字符串,但 R 默认为双引号。当我去 ?报价,我没有看到任何指导。
关于如何在键入时打印以下字符串(带单引号)的任何建议?
help <- 'help me'
help
#Result :`-(
"help me"
答:
0赞
Uwe
4/28/2022
#1
以编程方式创建有效的 SQL 语句是 R 中的常见任务。因此,已经有可用的解决方案也就不足为奇了。仅举 2 个例子:
1. SQLDF格式
此示例摘自 G. Grothendiek 的 sqldf 概述:
library(sqldf)
minSL <- 7
limit <- 3
species <- "virginica"
fn$sqldf("select * from iris where \"Sepal.Length\" > $minSL and species = '$species' limit $limit")
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 7.1 3.0 5.9 2.1 virginica 2 7.6 3.0 6.6 2.1 virginica 3 7.3 2.9 6.3 1.8 virginica
2.胶水
此示例修改自:help("glue_sql", "glue")
library(glue)
library(magrittr)
con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
iris2 <- iris
colnames(iris2) <- gsub("[.]", "_", tolower(colnames(iris)))
DBI::dbWriteTable(con, "iris", iris2)
var <- "sepal_width"
tbl <- "iris"
num <- 2
val <- "setosa"
glue_sql("
SELECT {`var`}
FROM {`tbl`}
WHERE {`tbl`}.sepal_length > {num}
AND {`tbl`}.species = {val}
LIMIT {limit}
", limit = 4, .con = con) %T>%
print()%>%
DBI::dbGetQuery(con, .)
<SQL> SELECT `sepal_width` FROM `iris` WHERE `iris`.sepal_length > 2 AND `iris`.species = 'setosa' LIMIT 4 sepal_width 1 3.5 2 3.0 3 3.2 4 3.1
3. 其他资源
也许,研究一下 SQL 引用 () 或更低级的帮助页面可能是值得的:.?DBI::SQL
sprintf()
评论
cat()
cat(sQuote("help me", q=FALSE))
'string'
"string"
string