粘贴并折叠矢量并用引号括起来
Paste and collapse vector and enclose with quotations
我试图通过从 excel 文件中提取向量来在我的 API 查询中制定 select 语句。
我从 excel 文件中提取的向量是:
X <-c("name", "type", "target")
然后我将这个向量传递到我的 API 查询路径中:
path <- paste0(`url`,`table`,"?$select=",paste(`X`, collapse = ","))
我得到以下信息:
"https://url/api/data/v8.2/table1?$select=name,type,target"
虽然我想要的期望输出是将我的 select 变量用这样的引号括起来:
"https://url/api/data/v8.2/table1?$select="name","type","target".
然而,当我尝试在粘贴函数中添加引号时,如下所示:
path <- paste0(`url`,`table`,"?$select=",paste('"',`X`,'"', collapse = ","))
我得到以下输出:
"https://url/api/data/v8.2/table1?$select=\" name \",\" type \",\" target \""
有谁知道如何在每个 selected 变量周围加上引号来获得我想要的输出?
我们可以使用 sprintf
sprintf("https://url/api/data/v8.2/table1?$select='%s','%s','%s'", X[1], X[2], X[3])
#[1] "https://url/api/data/v8.2/table1?$select='name','type','target'"
如果我们在 'X'
中有 'n' 个元素
s1 <- paste(rep("'%s'", length(X)), collapse=",")
do.call(sprintf, c(fmt = paste0("https://url/api/data/v8.2/table1?$select=", s1), as.list(X) ))
#[1] "https://url/api/data/v8.2/table1?$select='name','type','target'"
或glue
library(glue)
glue("https://url/api/data/v8.2/table1?$select='{X[1]}','{X[2]}', '{X[3]}'")
在OP的post中,如果是双引号,就是转义符。我们可以用 cat
检查
我试图通过从 excel 文件中提取向量来在我的 API 查询中制定 select 语句。
我从 excel 文件中提取的向量是:
X <-c("name", "type", "target")
然后我将这个向量传递到我的 API 查询路径中:
path <- paste0(`url`,`table`,"?$select=",paste(`X`, collapse = ","))
我得到以下信息:
"https://url/api/data/v8.2/table1?$select=name,type,target"
虽然我想要的期望输出是将我的 select 变量用这样的引号括起来:
"https://url/api/data/v8.2/table1?$select="name","type","target".
然而,当我尝试在粘贴函数中添加引号时,如下所示:
path <- paste0(`url`,`table`,"?$select=",paste('"',`X`,'"', collapse = ","))
我得到以下输出:
"https://url/api/data/v8.2/table1?$select=\" name \",\" type \",\" target \""
有谁知道如何在每个 selected 变量周围加上引号来获得我想要的输出?
我们可以使用 sprintf
sprintf("https://url/api/data/v8.2/table1?$select='%s','%s','%s'", X[1], X[2], X[3])
#[1] "https://url/api/data/v8.2/table1?$select='name','type','target'"
如果我们在 'X'
中有 'n' 个元素s1 <- paste(rep("'%s'", length(X)), collapse=",")
do.call(sprintf, c(fmt = paste0("https://url/api/data/v8.2/table1?$select=", s1), as.list(X) ))
#[1] "https://url/api/data/v8.2/table1?$select='name','type','target'"
或glue
library(glue)
glue("https://url/api/data/v8.2/table1?$select='{X[1]}','{X[2]}', '{X[3]}'")
在OP的post中,如果是双引号,就是转义符。我们可以用 cat